在Java多态性中将超类扩展到子类时出错
我目前正在java之旅中处理多态性问题,并在Eclipse中试用这些示例代码。我只是复制了代码,但我真的很想知道为什么我的代码不能编译 所以我得到了三个文件:Example.java、anives.java和Dog.java java包含以下主要方法:在Java多态性中将超类扩展到子类时出错,java,class,inheritance,Java,Class,Inheritance,我目前正在java之旅中处理多态性问题,并在Eclipse中试用这些示例代码。我只是复制了代码,但我真的很想知道为什么我的代码不能编译 所以我得到了三个文件:Example.java、anives.java和Dog.java java包含以下主要方法: public class Example { public static void main(String[] args) { Animal myDog = new Dog(); } } 然后我为Animal和D
public class Example {
public static void main(String[] args) {
Animal myDog = new Dog();
}
}
然后我为Animal和Dog创建了另外两个类,如下所示
动物类
public class Animal {
public void makeNoise() {
}
public void eat(){
}
public void sleep() {
}
public void roam() {
}
}
犬类
public class Dog {
}
我的理解是,我可以把狗作为扩展超类动物的子类。但是为什么我的代码不能编译呢
我在这些代码中遗漏了什么吗 您的Dog类未扩展animal类,因此这是无效的:
Animal myDog = new Dog();
为了继承Animal类,您需要修改类Dog
public class Animal {
public void makeNoise() {
}
public void eat(){
}
public void sleep() {
}
public void roam() {
}
}
你可以通过以下方式实现这一目标:
public class Dog extends Animal{
是的,你错过了什么。你从来没有写过a
Dog
扩展Animal
(你错过了extends
部分,你应该读一下。谢谢你的帮助和参考…你们太棒了!:)谢谢:)。。但我刚从HeadFirstJava的书中得到代码,当它讨论多态性时,它给出了没有“扩展”的相同示例代码?