1.1 继承的概念
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。
多个类可以称为子类,单独这个类称为父类或者超类。
子类可以直接访问父类中的非私有的属性和行为。
1.2 实现方式
通过extends 关键字让类与类之间产生继承关系。
class SubDemo extends Demo{}
1.3 继承的好处
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,提供了多态的前提。
1.4 继承的特点
1、 Java只支持单继承,不支持多继承。
一个类只能有一个父类,不可以有多个父类。
class SubDemo extends Demo{} //ok
class SubDemo extends Demo1,Demo2...//error
原因:当一个类同时继承两个父类时,两个父类中有同名的功能,那么子类对象调用该功能时,不知道运行哪一个。
2、 Java支持多层继承(继承体系)
class A{}
class B extends A{}
class C extends B{}
想要使用一个体系时,需要建立对象。建议建立最子类对象,因为最子类不仅可以使用父类中的功能。还可以使用子类特有的一些功能。
3、 注意点
不要仅为了获取其他类中某个功能而去继承
类与类之间要有所属( " is a " )关系,xx1是xx2的一种。
2. 继承体系下类中成员的变化
2.1 成员变量
当子父类中出现一样的属性时,子类类型的对象,调用该属性,值是子类的属性值。
如果想要调用父类中的属性值,需要使用一个关键字:super
this:代表是本类类型的对象引用。
super:代表是子类所属的父类中的内存空间引用。
注意:子父类中通常是不会出现同名成员变量的,因为父类中只要定义了,子类就不用在定义了,直接继承过来用就可以了。
2.2 成员函数
当子类出现和父类一模一样的函数时,子类对象调用该函数,会运行子类函数的内容
相当于覆盖了父类函数,这种情况称之为函数的重写(也叫做复写、覆盖)。
子类沿袭了父类的功能,但是功能内容却和父类不一致,这时可以使用重写进行覆盖。
提高扩展性&#