class Father{ public void func1() { func2();} public void func2() { System.out.println("AAA");} } class Child extends Father { public void func1(int i){System.out.println("BBB");} public void func2(){System.out.println("CCC");} } public class PolymorphismTest{ public static void main (String []args){ Father child =new Child(); Father father =new Father(); child.func1(); child.func2(); father.func1(); father.func2(); } }打印结果
时间: 2024-03-31 18:37:18 浏览: 41
go1.22.2 windows环境
打印结果为:
CCC
AAA
AAA
AAA
解析:
1. 首先创建了一个 Child 对象 child 和一个 Father 对象 father。
2. 在调用 child.func1() 时,因为 Child 类没有 func1() 方法,所以会调用 Father 类的 func1() 方法,而 Father 类的 func1() 方法中又调用了 func2() 方法,所以打印出 "CCC"。
3. 在调用 child.func2() 时,因为 child 是以 Father 类的身份被创建的,所以调用的是 Father 类的 func2() 方法,打印出 "AAA"。
4. 在调用 father.func1() 时,因为 Father 类中有 func1() 方法,所以直接调用 Father 类的 func1() 方法,而 Father 类的 func1() 方法中又调用了 func2() 方法,所以打印出 "AAA"。
5. 在调用 father.func2() 时,因为 father 是 Father 类的对象,所以直接调用 Father 类的 func2() 方法,打印出 "AAA"。
阅读全文