class Father{ public void func1() { func2();} 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) { Child child = new Child(); Father father = new Father(); child.func1(); child.func2(); father.func1(); father.func2(); }}打印结果
时间: 2024-03-24 10:40:27 浏览: 47
jquery 之 $().hover(func1, funct2)使用方法
这段代码存在语法错误,无法编译通过。我做了一些修改,修改后的代码如下:
```
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) {
Child child = new Child();
Father father = new Father();
child.func1(1);
child.func2();
father.func1();
father.func2();
}
}
```
运行这段代码会输出以下结果:
```
BBB
CCC
AAA
AAA
```
解析:
1. 首先创建一个 Child 对象 child 和一个 Father 对象 father。
2. 调用 child.func1(1) 时,因为 Child 类有 func1(int i) 方法,所以直接调用 Child 类的 func1(int i) 方法,打印 "BBB"。
3. 调用 child.func2() 时,因为 Child 类有 func2() 方法,所以直接调用 Child 类的 func2() 方法,打印 "CCC"。
4. 调用 father.func1() 时,因为 Father 类有 func1() 方法,所以直接调用 Father 类的 func1() 方法,而 Father 类的 func1() 方法中又调用了 func2() 方法,所以打印 "AAA"。
5. 调用 father.func2() 时,因为 father 是 Father 类的对象,所以直接调用 Father 类的 func2() 方法,打印 "AAA"。
阅读全文