class A { public void func1() { System.out.print("A func1 is calling! "); } } class B extends A { public void func1() { System.out.print("B func1 is calling! "); } public void func2() { System.out.print("B func2 is calling! "); } } class C { public static void main(String[] args) { A a = new B(); a.func1(); a.func2(); } }
时间: 2024-02-14 19:05:43 浏览: 86
self.attachevent is not a function的解决方法
5星 · 资源好评率100%
这段代码会编译错误,因为 `A` 类中没有定义方法 `func2()`,但是在 `main()` 方法中,将 `B` 类的对象 `b` 强制转换为 `A` 类的对象 `a`,然后尝试调用 `a` 对象的 `func2()` 方法,这是不允许的。
如果将 `a.func2()` 这行代码删除,程序的输出结果将是:
```
B func1 is calling!
```
首先,在 `main()` 方法中创建了一个 `B` 类的对象 `b`,然后将其强制转换为 `A` 类的对象 `a`。
接着,调用 `a.func1()` 方法,由于 `B` 类重写了 `func1()` 方法,因此会调用 `B` 类中的 `func1()` 方法,输出 `B func1 is calling!`。
因此,最终的输出结果是 `B func1 is calling!`。
阅读全文