1 定义:代码的一种复用方式,一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。不能继承静态方法和构造方法。

2 创建子类对象会先递归创建父类对象,子类构造方法的首行默认为super()。
super()相当于 new Father(),在子类成员方法中super就是子类构造方法中创建的父类对象。
class Animal{
public Animal(){
System.out.println("Animal()....");
}
}
class Cat extends Animal{
public Cat(){
System.out.println("Cat()....");
}
}
class Tom extends Cat{
public Tom(){
System.out.println("Tom().....");
}
}
public class TestThreeInherientance {
public static void main(String[]args){
Tom t = new Tom();
}
}
运行结果
Animal()....
Cat()....
Tom().....
3 子类为什么不继承父类的构造方法
如果子类可以复用父类的构造方法,那创建出来的子类对象本质就是父类对象,那子类的存在就没有意义了。
4 子类不能继承父类中的静态成员方法
package re_20190723;
public class Test04 {
public static void main(String[] args) {
Person p = new Student();
//Syntax error on token "show", Identifier expected after this token
Person.show();
Student.show();
p.show();
}
}
class Person{
public static void show(){
System.out.println("Person.show()...");
}
}
class Student extends Person{
public static void show(){
System.out.println("Studnet.show()...");
}
}
运行结果
Person.show()...
Studnet.show()...
Person.show()...
网友评论