【发布时间】:2012-04-08 05:24:58
【问题描述】:
我有两个例子。第一个是正确的,第二个是错误的。只是有一点不同:Animal 类和Mammal 类。
public class Inheritance {
public static class Animal {
public void Scream() {
System.out.println("I'm an animal");
}
}
public static class Mammal extends Animal{
//no Scream method
}
public static class Tiger extends Mammal{
public void Scream(){
System.out.println("I'm a tiger");
}
}
public static void main (String[] args){
Animal tiger = new Tiger();
tiger.Scream(); //True
}
}
第二个例子:
public class Inheritance {
public static class Animal {
// no Scream method
}
public static class Mammal extends Animal{
public void Scream(){
System.out.println("I'm a mammal");
}
}
public static class Tiger extends Mammal{
public void Scream(){
System.out.println("I'm a tiger");
}
}
public static void main (String[] args){
Animal tiger = new Tiger();
tiger.Scream(); //false. Error
}
}
谢谢:)
@:我已经编辑了 .我打错字了。
【问题讨论】:
-
你在问为什么它给你一个错误?
-
它对我有用,没有错误......你得到了什么错误?
-
您的两个示例都编译并运行(并打印“我是老虎”)对我来说很好。你有什么问题?
-
错误是什么?不编译?如果是这样,编译器会说明什么错误?运行,但给出了意想不到的结果?如果是这样,您期望什么以及会发生什么?
-
你确定吗?我运行了这两个案例并得到“我是一只老虎”作为输出。
标签: java oop inheritance