繼承小記:在子類構造之前,一定先構造父類

package auth.cybermax;

public class Parent {
    public Parent(){
        System.out.println("Parent.constuct");
    }
    public Parent(String p){
        System.out.println("Parent.constuct, " + p);
    }
    public void aaa(){
        System.out.println("aaa");
    }
}
package auth.cybermax;

//在子類構造之前,一定先構造父類,默認使用父類的無參構造函數
public class Child extends Parent{
    public Child(){
        System.out.println("Child.constuct");
    }
    public Child(String p){
        super(p);  //這裏如果不寫,默認父級會用無參構造函數
        System.out.println("Child.constuct, " + p);
    }
    @Override
    public void aaa(){
        System.out.println("Child");
    }
}
package auth.cybermax;

public class MyTest {
    public static void main(String []args){
        Parent parent = new Child();
        parent.aaa();
        System.out.println("=============");
        parent = new Child("2");
        parent.aaa();
    }
}
Parent.constuct
Child.constuct
Child
=============
Parent.constuct, 2
Child.constuct, 2
Child

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章