问答详情
源自:10-1 Java 中的多态

类型转换问题

父类:
package cn.edu.aufe.demol2;

public class Animal {
	public void eat(){
		System.out.println("动物具有吃的能力");
	}
}
子类:
package cn.edu.aufe.demol2;

import cn.edu.aufe.demol.Animal;

public class Dog extends Animal {
	public void eat(){
		System.out.println("狗具有吃的能力");
	}
}
main()函数:
package cn.edu.aufe.demol2;

public class Initial {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Animal obj1=new Animal();
		Animal obj2=new Dog();
		
	}

}

但是在编写Animal obj2=new Dog()的时候,编译器总是报错,让我把写成Dog obj2=new Dog();但我认为我写的没错啊

提问者:benyl123 2016-10-31 20:20

个回答

  • benyl123
    2016-10-31 20:22:49

    我知道是什么问题了,sorry,应该要把子类Dog类的import那段代码注释掉,即

    package cn.edu.aufe.demol2;
    
    //import cn.edu.aufe.demol.Animal;
    
    public class Dog extends Animal {
    	public void eat(){
    		System.out.println("狗具有吃的能力");
    	}
    }