class Main {
public static void main(String[] args) {
Object d = new Dog();
d.barkOnce();
}
}
class Dog
{
private String voice;
public void barkOnce()
{
System.out.println(voice);
}
}
当我运行程序时,输出中出现错误:
退出状态1 Main.java:4:错误:找不到符号 d.barkOnce(); ^ 符号:方法barkOnce() location:Object类型的变量d
在分析错误之后,我无法确定为什么找不到该方法。有人可以解释一下我在这里可能缺少什么吗?
答案 0 :(得分:1)
方法barkOnce()
不属于Object
类型的一部分。您应该能够编译:
Dog d = new Dog()
当你转换为像Object这样的基础时,编译器阻止你使用更具体类型的任何东西,除非你回击。
答案 1 :(得分:0)
这是因为您将变量“d”声明为Object类型。 Object没有barkOnce()方法。你可以把它投给狗:
((Dog) d).barkOnce();
或宣布它为狗开头:
Dog d = new Dog();