继承_理解

2019-07-26  本文已影响0人  御都

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


image.png

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()...
上一篇 下一篇

猜你喜欢

热点阅读