父类
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();
p = new Child();
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。