1、什么情况下会用到继承?
从代码的角度:
(1)自上而下:当设计一个新的类时,发现已经有一个类的所有属性,和方法,已经写好,而且正好也是我要的,可以继承它,再扩展它没有的部分
(2)自下而上:当发现设计了多个类时,这些类又有一些共同的特征,那么可以把这些共同的特征(属性、方法)可以抽取到父类中,这样就不用多个类中重复编写。
目的:代码的复用、扩展
从逻辑的角度:
用继承表示is-a的关系。
2、如何实现继承?
语法格式:
【修饰符】 class 子类名 extends 父类名{
}
3、继承的特点
(1)子类会继承父类的所有的属性和方法,包括私有的,只不过私有的不可以在子类中直接使用,但是可以间接使用到
(2)子类不会继承父类的构造器
(3)子类在构造器中一定会调用父类的构造器,默认情况下会调用父类的无参构造super()
(4)如果父类没有无参构造,那么一定要在子类的构造器中用super(实参列表)手动调用父类的有参构造
(5)子类还可以扩展父类没有的属性、方法等。
(6)Java只支持单继承,但是支持多层继承。
通俗的讲:Java类只能有一个直接的父类,但是可以有间接的多代的父类。
(7)Java中一个父类可以有很多个子类。