多态的再练习
多态 note
First. 展示代码
// 父类
package yang.file;
public class Father {
public void eat(){
System.out.println("run\n");
}
public void come() {
System.out.println("come ! \n");
}
}
// 子类
package yang.file;
public class son extends Father{
//Override
public void eat(){
System.out.println("eat\n");
}
}
// 主函数
package yang.file;
public class Rot {
public static void main(String[] args) {
Father f = new son();
Father s = new Father();
f.eat();
f.come();
s.eat();
s.come();
}
}
运行结果
Father f = new son();
的功能在于,
在Father f = new Father();
的基础上,得以使用被子类重构的方法。
( f 依然可以使用自己的方法)
但是调用子类方法时,仅限于 父子类均有的方法 ,若方法为子类特有,则父类无法调用。
如图中,两者的区别在于调用两者共有的 eat(); 方法,因为子类重写,所以父类在调用时,会按照子类的标准来执行。