在父子关系-java的上下文中创建类的实例

时间:2011-06-17 10:45:59

标签: java

我试图理解如何在父/子上下文中创建类或子类的实例。看看这段代码:

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();  
    } 
}

任何建议

1 个答案:

答案 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没有意义,也不会编译。

    } 
}