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