1、B是从A派生的,B包含A中的属性和方法
2、A具体可看下多态的内容希望大家指正...

解决方案 »

  1.   

    A x=new A();X 当然是指向A 这个类
      

  2.   

    1、
    A x=new B();
    x 是class A的对象
    B x=new B();
    x 是class B的对象2、
    A x=new B();x依然指向AA是B的基类,派生自B的对象初始化B时必然会初始化A(通过构造函数),而派生自A的对象初始化A时不会初始化B。
      

  3.   

    1. A x=new B();   x指向B2. B x=new B();   x指向B
    哦知道:   A x=new A();
       A x=new B();这两者没有区别(通过在IDE中 x 后面打个点 x. 可以看出它们是一致的)
    可为什么不干脆用前者而要用后者呢这两者当然有区别,前一个的x是一个A的实例,后一个的x实际是一个B的实例,对于后一个x而言,可以
       (x as B).j
       (x as B).g()

       ((B)x).j
       ((B)x).g()
    前一个x只能调用属于类A的方法和属性。
      

  4.   

    俺只知道 
       A x=new A();
       A x=new B();
    可以,但是
       B x=new A();
       B x=new B();
    就有错了,请大家指正
      

  5.   

    B继承自A,A是父类,B是A的子类。 声明为A的变量x当然能够引用B的实例(这也是多态的精髓)。
    B x=new A();当然不对了。这是面向对象中多态的最基本概念,好好学一下。