gpt4 book ai didi

Java 转换对象

转载 作者:行者123 更新时间:2023-11-29 10:04:08 25 4
gpt4 key购买 nike

我有两个类:TeacherCoordinatorCoordinator 扩展 Teacher

基本上我想创建一个实例变量,它可以接收 Teacher 实例或 Coordinator 实例。

我知道只需编写 Teacher exp = new Teacher()Teacher exp = new Coordinator() 即可轻松实现,但是当我这样做时,我当我将 new Coordinator()new Teacher() 应用于正常的引用变量时,只能访问 Teacher 方法和属性。我的问题是,有没有另一种方法,我只使用一个可以分配给 Teacher 或 Coordinator 对象的实例变量,并使用这个变量调用分配给对象引用变量的对象的任何属性/方法?

最佳答案

您可以检查 exp 是否是一个 Coordinator 然后相应地转换和调用它的函数:

if(exp instanceof Coordinator) {
((Coordinator)exp).foo();
}

如果你有几件事情要做,你可以在局部范围内创建一个变量并重复使用它:

if(exp instanceof Coordinator) {
Coordinator expCoord = (Coordinator)exp;
expCoord.foo();
expCoord.bar();
expCoord.baz();
}

关于Java 转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062761/

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