Java 找不到对象类型的位置:变量d的符号:barkOnce()

Java 找不到对象类型的位置:变量d的符号:barkOnce(),java,object,compiler-errors,Java,Object,Compiler Errors,当我运行程序时,我的输出中会出现一个错误: 退出状态1 java:4:错误:找不到符号 d、 巴克一次(); ^ 符号:方法barkOnce() 位置:对象类型的变量d 在分析错误之后,我不知道为什么找不到该方法。有人能解释一下我在这里遗漏了什么吗?方法barkOnce()不是类型对象的一部分。您应该能够使用以下工具进行编译: Dog d=新狗() 当您强制转换到一个类似于base的对象时,编译器会阻止您在更具体的类型上使用任何东西,除非您使用typecast back。这是因为您将变量“d”声

当我运行程序时,我的输出中会出现一个错误:

退出状态1 java:4:错误:找不到符号 d、 巴克一次(); ^ 符号:方法barkOnce() 位置:对象类型的变量d

在分析错误之后,我不知道为什么找不到该方法。有人能解释一下我在这里遗漏了什么吗?

方法
barkOnce()
不是类型
对象的一部分。您应该能够使用以下工具进行编译:

Dog d=新狗()


当您强制转换到一个类似于base的对象时,编译器会阻止您在更具体的类型上使用任何东西,除非您使用typecast back。

这是因为您将变量“d”声明为type对象。对象没有barkOnce()方法。你可以把它扔给狗:

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);
    }
 }
或者首先宣布它是一只狗:

((Dog) d).barkOnce();
Dog d = new Dog();