【发布时间】:2025-12-24 18:55:12
【问题描述】:
好的,所以我有一个抽象类:
public abstract class Animal {
public abstract String sound();
}
那么,我有一个扩展它的类:
public class Chicken extends Animal {
public String sound() {
return "Cockadoodledoo!";
}
}
然后说我有一个带有 main 方法的测试类:
public class Test {
Chicken a = new Chicken();
System.out.println((Animal)a).sound());
}
输出是“Cockadoodledoo!”所以我的问题是,如果我将 a 种姓到 Animal,它仍然会调用 Chicken 中的方法吗?它不会将 a 视为 Animal 的对象吗?是不是因为 sound() 是抽象的所以不能被调用.. 但是它不会给我一个例外吗?
提前谢谢你。
【问题讨论】:
-
它超载了。你应该期待这个。在这种情况下,基本上你将无法在
Animal中调用sound。
标签: class methods call abstract