继承与接口
相关知识点
由继承得到的类称为子类,被继承的类称为父类(超类)
,Java不支持多重继承
,即子类只能有一个父类。人们习惯地称子类与父类的关系是is-a关系。如果子类和父类在同一个包中,那么,子类自然地继承了父类中不是private的成员变量作为子类的成员变量,并且也自然地继承了父类中不是private的方法作为子类的方法,继承的成员变量或方法的访问权限保持不变。
子类和父类不在同一个包中时
,父类中的private和友好访问权限
的成员变量不会被子类继承
。也就是说,子类只继承父类中的
protected和public访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。
子类声明的成员变量的名字和从父类继承来的成员变量的名字相同时,将隐藏所继承的成员变量。方法重写(overRide)
是指:子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字
、参数个数
、参数的类型
和父类的方法完全相同
。
子类如此定义的方法称为子类重写的方法。子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。
重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。
class People {
//人
protected double height, weight; //保护权限的两个变量
public void speakHellow() {
//公共的方法
}
public void averageHeight() {
}
public void averageWeight() {
}
}
class ChinesePeople extends People{
//继承了人
@Override
public void speakHellow() {
//重写父类的方法
System.out.println("你好");
}
@Override
public void averageHeight() {
System.out.println(