继承

继承的概述、优点、格式

什么是继承

生活中的继承

先有爸爸,后有儿子,儿子继承爸爸的财产。

Java中的继承

和生活中的继承类似,子类会自动拥有父类的内容。

Java中如何使用继承

把子类共性内容抽取到一个类中,子类继承父类。

继承的优点

u减少了代码冗余,提高了代码的复用性。

有利于功能的扩展,子类继承父类就得到了父类的功能

继承的格式

  1. public class 子类名 extends 父类名 {
  2. }

什么时候使用继承?

继承体现的关系:is…a的关系,子类是父类的一种。

例如:狗和动物

子类中无法使用的内容

1.父类的构造器不会继承到子类中

因为构造器名称要和类名相同,而子类和父类类名不一样,父类的构造方法不能继承到子类中来使用。

2.父类私有的内容子类不能使用

父类私有的内容子类会继承保存,private,

Java中继承的特点

①Java只支持单继承

②Java支持多层继承

继承后成员变量的访问特点

在子类方法中访问一个变量满足:就近原则

1.先找子类局部变量

2.然后找子类成员变量

3.然后找父类成员变量

如果子父类中,出现了重名的成员变量,会优先使用子类的,此时如果一定要使用父类的怎么办?

可以通过super关键字,指定访问父类的成员。

方法重写

什么是方法重写?

子类中对父类已有的方法重新写一遍

方法重写的应用场景

当子类和父类有相同的功能,但父类的功能不满足子类的需求时,子类可以重写父类中的方法

Override注解作用

@Override是放在重写后的方法上,检验该方法是否是重写方法,加上该注解后如果重写错误,编译阶段会出现错误提示。建议重写方法加上@Override注解,代码安全!

方法重写注意事项和要求

①是子类和父类之间的事情

②方法名要相同

③参数列表要相同

④返回值类型要相同

⑤子类重写方法的权限要大于等于父类方法的权限(暂时了解 :private < 缺省 < protected < public)

构造器中访问的特点

继承中构造器的访问特点

子类中所有的构造器默认都会先访问父类中的无参构造器,再执行自己。

为什么要先执行父类构造器

因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。

子类构造器如何调用到父类构造器

子类构造器的第一行语句默认都是:super(),不写也存在。

this和super

this:代表本类对象的引用。

super:代表父类存储空间的标识可以理解为父类对象引用

抽象方法

抽象方法的格式和作用

抽象方法概念

没有方法体的方法

抽象方法的格式

  1. public abstract 返回值类型 方法名(参数列表);

抽象方法场景

父类知道子类一定要完成某个功能,但是每个子类具体的情况都不一样,

父类的该功能就可以定义成抽象方法。

抽象类

—>抽象方法必须放在抽象类中。

抽象类格式

  1. public abstract class 类名 {}

理解抽象方法的格式和作用

抽象类的使用步骤

①定义类继承抽象类

②重写抽象方法

③使用子类对象

抽象类设计目的

抽象类不能创建对象,

让子类继承抽象类,重写抽象方法。

抽象类的注意事项

①抽象方法必须放在抽象类中,抽象类中可以没有抽象方法。

②子类必须重写抽象类中的所有抽象方法,如果子类只重写一部分抽象方法子类还是抽象类

必备面试题http://120.24.95.18/javamianshi20200522/