我试图理解如何在父/子上下文中创建类或子类的实例。看看这段代码:
class A {
public void methodl() { //class "A" method caled }
}
class B extends A {
public void methodl() { //class "B" method caled }
}
public class Test {
public static void main(String args[]) {
//case 1
A a=new A();
a.method1();
//case 2
B b=new B();
b.method1();
//case 3
A a=new B();
a.method1();
//case 4
B b=new A();
b.method1();
}
}
任何建议
答案 0 :(得分:1)
public class Test {
public static void main(String args[]) {
//case 1
A a=new A();
a.method1();
在案例1中,a是对A对象的引用,并且该调用将是A的方法1。
//case 2
B b=new B();
b.method1();
在案例2中,b是对B对象的引用,并且调用将是B的方法1。
//case 3
A a=new B();
a.method1();
在情况3中,a是对B对象的引用,即使它可以引用任何A对象,并且该调用将是B的method1。
实际上,因为它位于其中,所以它不会编译,因为您在已经定义的范围内再次声明变量a。
//case 4
B b=new A();
b.method1();
案例4没有意义,也不会编译。
}
}