继承
一、基本概念
Java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系
public class B extends A{}
二、特点
1.子类能继承父类的非私有成员(成员变量、成员方法)
2.继承后对象的创建:
子类的创建是由子类、父类共同完成的
(子类对象实际上是由子类和父类这两张设计图共同创建出来的,这两张设计图对外暴露了什么成员,对象就可以访问什么成员)
三、继承的好处
1.减少重复代码的编写
四、权限修饰符
什么是权限修饰符
就是是用来限制类中成员(成员变量、成员方法、构造器、代码块…)能够被访问的范围
五、单继承
Java是单继承,Java中的类不可支持多继承,但是可以支持多层继承
六、object类
object类是Java所有类的祖宗类。我们写的任意一个类,其实都是object的子类或子孙类
七、方法重写
当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写
注意: 重写后,方法的访问,Java会遵循就近原则
其他注意事项:
- 重写小技巧:使用override注释(加上@Override),他可以指定Java编译器,检查我们方法重写的格式是否正确,代码可读性也更好
- 子类重写父类方法时,访问权限必须大于或等于父类该方法的权限(public>protected>缺省)。
- 重写方法返回值类型,必须与重写方法的返回值类型一样,或者范围更小。
- 私有方法,静态方法不能被重写,如果重写会报错。
八、子类中访问其他成员的特点
1.在子类方法中访问其他成员(成员变量,成员方法),是依照就近原则的
九、子类构造器的特点
子类的全部构造器,都会先调用父类的构造器,在执行自己
子类构造器是如何实现调用父类构造器的:
- 默认情况下,子类构造器的第一行都是super()(写不写都有),它会调用父类的无参构造器。
- 如果父类没有无参构造器,则我们必须在子类构造器的第一行手写super(…),指定去调用父类的有参构造器。
子类构造器可以通过调用父类构造器,把对象中包含父类这部分数据先初始化赋值,再回来把对象包含子类这部分的数据也进行初始化
十、补充知识this(…)调用兄弟构造器
- 任意类的构造器中,是可以通过this(…)去调用类的其他构造器的。