继承的规则和特点:
子类不能同时继承多个父类,但是子类可以多层继承父类(举个例子)。
class Zu {
String a = "呵呵呵呵";
}
class Fu extends Zu {
String a = "哈哈哈哈";
}
class Zi extends Fu {
String a = "嘿嘿嘿嘿";
}
父类可以被多个子类继承。
子类有父类的的全部属性和方法。
继承里的现象和问题:
父类和子类的成员变量同名:
默认调用子类的同名变量。
使用this关键字和上面相同。
使用super关键字调用父类的同名变量。(举个例子)
public class Demo02 {
public static void main(String[] args) {
Zi z = new Zi();
z.display();
}
}
class Zu {
String a = "呵呵呵呵";
}
class Fu extends Zu {
String a = "哈哈哈哈";
}
class Zi extends Fu {
String a = "嘿嘿嘿嘿";
public void display() {
System.out.println("default:"+a+"\nthis:"+this.a+"\nsuper"+super.a);
}
}
运行结果:
default:嘿嘿嘿嘿
this:嘿嘿嘿嘿
super哈哈哈哈
父类和子类的方法同名(也叫覆盖、重写):
默认调用子类的同名方法。
使用super关键字调用父类的同名方法。(举个例子)
public class Demo04 {
public static void main(String[] args) {
Zi2 z = new Zi2();
z.show();
}
}
class Fu2 {
public void show() {
System.out.println("父类的show");
}
}
class Zi2 extends Fu2 {
public void show() {
System.out.println("子类的show");
super.show();
}
}
运行结果:
子类的show
父类的show
注意重写的错误:
保证重写的方法权限大于等于父类。