class A {}
class B extends A{}
A objectX = new B();
最后一行是什么意思?它是A类的对象还是B类的对象?我对多态性和对象的类型感到困惑
实例和对象是否有相同的含义?是A的objectX实例还是B的一个实例?
当我们运行objectX.SomeMethod。编译器会检查什么?或者方法会在运行时检查?
class A{}
class B extends A{}
public class Main{
public static void main(String[] args){
A objectX = new B();
System.out.println(objectX instanceof B);//line 1
System.out.println(objectX instanceof A);//line 2
}
}
如果我运行上面的代码为什么它给了我真正的线1和线2.objectX指向B.How来_对象是A的一个实例?
它是类型A的引用,引用了类型B的对象。这意味着您只能调用方法并引用A类中定义的字段。 –
如果你在代码中显示你的问题,而不是试图用文字描述它会容易得多。 –
访问: https://stackoverflow.com/questions/13077009/java-difference-between-ax-new-a-and-ax-new-b-when-b-extends-a –