java 實例化是調用了子類重寫方法


java 實例化時調用了抽象方法或者class里面某個方法,如果子類有重寫改方法,實際運行的是子類重寫方法

package auto.test;

//抽象父類
public abstract class Father {
    public Father() {
        // TODO Auto-generated constructor stub
        oupPut();  //實例化時調用,子類有,就調用子類方法,子類沒有,就調用父類方法
    }
    //父類抽象方法,讓子類重寫
    public  void  oupPut(){
        System.out.println("from Father class");
    };
}
//子類A
class ChildA  extends Father{
    //重寫父類方法
    @Override
    public  void  oupPut(){
        System.out.println("from childA class");
    }
}
// 子類B
class ChildB extends Father {
    //重寫父類方法
    @Override
    public  void  oupPut(){
        System.out.println("from childB class");
    }
}
class ChildC extends Father {
    //沒有重寫父類方法

}

執行測試類
public class TestClaass {

    public TestClaass() {
        // TODO Auto-generated constructor stub
    }
    public static void main(String arg[]){
        Father a = new ChildA();
        Father b = new ChildB();
        Father c = new ChildC();
    }
}

運行結果:

from childA class
from childB class
from Father class


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM