继承:
子类 extends父类{}
class C {
void demo1() {
}
}
class A extends C {
// A继承自C,所以也具有demo1方法
// void demo1(){}
void demo2() {
}
}
class B extends C {
// B继承自C,所以也具有demo1方法
// void demo1(){}
void demo3() {
}
}
特点:1、提高了代码的复用性;
2、让类与类之间长生了关系,有了这个关系,才有了多态的特性。
注意:类与类之间必须具有所属关系才能使用继承,即… is a …。
*JAVA语言中,只支持单继承,不支持多继承。因为多继承会带来安全隐患,当多个父类中定义了相同的功能,当功能内容不同时,子类对象不知道执行哪一个。但是JAVA语言中保留了这种机制,并用另一种体现形式来完成表示:多实现。
*JAVA语言支持多层继承,是一种继承体系。
使用一个继承体系中的功能的方法:
1、首先查阅父类的描述,因为父类中定义了该体系中的共性功能。
2、创建最子类的对象,一是因为父类有可能不能创建对象;二是创建子类可以使用更多的功能,包括基本功能和特有功能。
*事物之间不一定有继承关系,有可能具有聚集关系,根据关系的紧密程度又分为聚合和组合,其中组合关系练习更紧密。
*子父类中变量的特点:
如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量用this;子类要访问父类中的变量用super。
*子父类中的函数的特点:覆盖
当子类中出现和父类一模一样的方法时,但子类调用该方法时,会运行子类中的该方法。
1、子类覆盖父类,必须保证子类权限大于父类权限
2、静态只能覆盖静态
*子父类中的构造函数的特点
子类所有的构造函数,默认都会访问父类的空参构造函数,因为子类中每个构造函数内的第一行都有一句隐式super();当父类中没够空参的构造函数时,子类必须手动通过super语句形式指定要访问的父类中的构造函数;当然子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数;子类中至少会有一个构造函数访问父类中的构造函数。