class superclass
{
int a;
superclass()
{
int a=100;
}

public void printA()
{
System.out.println(a);
}
}

class superclass2 extends superclass
{
superclass2(int a)
{
this.a=a;
}
public void printB()
{
System.out.println("继承的"+a);
}

}


class superclassDemo
{
public static void main(String []args)
{
superclass a1=new superclass2(10);
a1.printA();
//superclass2 a2=new superclass2()
}
}
这一段" superclass a1=new superclass2(10);"应该如何理解?

解决方案 »

  1.   

    定义一个superclass类型变量a1,引用到一个新生成的superclass2类型的对象。
    因superclass2是superclass的子类,所以这是可以的。
    楼主不会连书都没看过吧?
      

  2.   

    定义一个superclass类型变量a1?是对象吧?
      

  3.   

    向上转型
    superclass2由superclass派生而来,因而能够保证其拥有的方法(printA)包含在superclass2拥有的方法中,故有a1.printA();
      

  4.   

    对象是new出来的,不是“定义”出来的。