gpt4 book ai didi

java - 对象类继承

转载 作者:行者123 更新时间:2023-12-01 19:37:58 24 4
gpt4 key购买 nike

我们知道类 A 隐式扩展了 Object 类,但是如果我们使用类 A 构造函数实例化 Object 类对象并尝试访问类 A 的 print() 方法,则会显示编译时错误,而在其他情况下,类 B 扩展类 A使用 B 类构造函数实例化 A 类对象并尝试访问 print() 方法效果很好。

class A{
public void print(){
System.out.println("A");
}
}
class B extends A{
public void print(){
System.out.println("B");
}
}
public class MyClass {
public static void main(String args[]) {
Object o = new A();
o.print(); // error
A a = new B();
a.print(); // print B
}
}

最佳答案

这一行:

o.print(); // error

知道o实际上属于A类型。

编译器可以知道,但在Java中,它知道。编译器只知道有一个名为o、类型为Object的变量。

因此,编译器会因为调用声明的类型Object不支持的o方法而受到惩罚!

其他语言在此类事情上“更聪明”,但在 Java 中,事情就是这样。

关于java - 对象类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56669675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com