Father f = new Son();

Father f = new Son();的意思是父类引用指向子类对象,这是Java多态的一种体现

调用的时候是动态绑定调用重写的子类方法 背下来 父类对象的引用指向子类对象就是动态绑定

动态绑定满足三个条件:

1。需要有继承的存在。

2。需要有方法的重写

3。父类引用指向子类对象。

例如

public void Father(){

FMethod();//...父类的方法,简略写了

}

public void Son extens Father

{

FMethod();//...子类的重写的方法,简略写了

}

publicclassTestExtends{

publicstaticvoidmain(String[] args){

Father f =new Son();

●      f.FMethod();

    }

}

这里动态调用的就是子类的重写方法,如果子类没有重写方法,那就调用的就是父类的方法;

你可能感兴趣的:(Father f = new Son();)