考虑下面的代码片段
public class SuperClass {
public void move()
{
System.out.println("i am in super class");
}
}
public class SubClass1 extends SuperClass{
public void move()
{
System.out.println("i am in sub1 class");
}
}
public class SubClass2 extends SuperClass {
public void move()
{
System.out.println("i am in sub2 class");
}
}
现在我正在创建这样的对象。
public class program {
public static void main(String[] args) {
SubClass1 obj = new SubClass2(); // Compile error - Type mismatch: cannot convert from SubClass2 to SubClass1
obj.move();
}
}
为什么我不能这样做?是什么阻止我写这篇文章??
最佳答案
Why i can't do like this ?
SubClass2
不是 SubClass1
What stopping me to write this ??
在 Java 中,您实际上无法将类型转换为引用。您只能将引用的类型更改为对象实际的类型。你可能想要的是
SuperClass obj = new SubClass2(); // SubClass2 is a SuperClass
obj.move();
或者你可以
public class SubClass2 extends SubClass1 {
关于java - Java中典型的层次继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337759/