我目前正在学习 Java,但我确实遇到了一些困难。所以我有一个类“Disk”,其子类为“CD”、“Game”和“DVD”。我有一个“数据库”类,它在数组列表中创建磁盘、游戏和 cd 的新实例。数组列表的初始化如下:
private ArrayList<Disk> disks = new ArrayList();
然后我将 Game 的实例添加到数组中:
disks.add(new Game(1999,"SuperGame!",900,"xbox","ea"));
我正在尝试使用以下代码访问 Game 子类中的方法“getConsole”:
Disk currentDisk = disks.get(3);
currentDisk.getConsole();
它说 getConsole 方法不存在。我可以看到问题是它仅访问 Disk 类的方法和字段,但我怎样才能使其能够访问它所定义的子类的方法。感谢您的宝贵时间:)
最佳答案
由于 getConsole()
仅在 Game
子类上可用,因此您需要告诉 Java 您知道您正在查看 Game
>,并显式转换:
Disk currentDisk = disks.get(3);
if (currentDisk instanceof Game) {
((Game)currentDisk).getConsole();
}
这不是在 Java 中执行操作的好方法,因为您正在显式测试子类的类型。
关于java - 如何访问子类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673471/