父类
package xuhanshubiao; public class Foo { void aFunction() { System.out.println("一年前"); bFunction(); } void bFunction() { System.out.println("请修改爱人的名字"); } }
子类
package xuhanshubiao; public class ProgramerA extends Foo{ public static void main(String[] args) { Foo foo1 = new ProgramerA(); foo1.aFunction(); Foo foo2 = new Foo(); foo2.aFunction(); } void bFunction() { System.out.println("小丽"); } }
当运行时,f1,2输出的a是相同的:一年前
但是f1输出的b是小丽,f2:请修改爱人的名字
原因如下:
比如:
Parent p = new Child();
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。