gpt4 book ai didi

java - 在 Java 中使用同一文件中的两个类进行向下转型

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

我正在尝试执行一些教师讲述的示例,但似乎不明白这段代码是如何工作的。

public class Child extends Base {


void show() {
System.out.println("Child");
}


void display(){
System.out.println("Display");
}

public static void main(String[] args) {
Base b=new Child();
b.show();
b.display();

}
}

class Base {

void show() {
System.out.println("Base");
}
}

这两个类位于同一个文件中,任何人都可以告诉我这里发生了什么,因为我无法理解。

$ javac Child.java
Child.java:20: error: cannot find symbol
b.display();
^
symbol: method display()
location: variable b of type Base
1 error

最佳答案

您使用 Base 类型定义变量 b。 Base 没有显示方法,因此会出现错误。您将一个 Child 分配给 b 但编译器不知 Prop 体情况,因此会给您一个错误。 b 可以是 Base 或扩展 Base 的任何内容,但不一定具有 display 方法。

如果您确定 b 是子实例(代码中就是这种情况),您可以在使用显示之前对其进行强制转换。像这样:

((Child)b).display();

关于java - 在 Java 中使用同一文件中的两个类进行向下转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49914518/

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