父类 对像=new 子类();
这个对象到底是子类还是父类啊?
用它点不出子类中特有的方法,但可以调用子类重写父类的方法,这是为什么呢

解决方案 »

  1.   

    子类,记住一点new出来的什么就是什么,这里new出来的是子类,它就是子类。   至于为什么  父类 对像=new 子类() 这样写,那是为了可以使用多态。多态有三条要求,父类引用指向子类对象就是其中一条。
      

  2.   

    class A{}class B extends A{}public class C{
          public static void main(String[] args){
                  A a = new B();
                  System.out.println(a);
            }通过这个小程序就能看出来a是B的对象。
      

  3.   

    new 后边的是子类,就是子类的对象。
    这个这样一个东东:一个父类的引用指像了一个子类的对象。
    你调用  方法时,只能调用  父类里边有的方法,子类里边的方法调用不了。
    你可以想像这是一个黑盒子,盒子里边是new的一个对象,但是对外提供的只是一个父类的引用。在这种情况下,当然不可能调
    用子类的方法了...
      

  4.   

    父类 对像=new 子类(); 
    子类 obj=(子类)对象;
    这样就可以调用子类特有方法了
      

  5.   

    能不能详细说明一下
    父类 对像=new 子类(); 

    子类 对像=new 子类(); 
    的好处,总是有一点不明白
      

  6.   

    和上面的基本一样  new出来的是子类就是子类 class A{ 
      
      int i=1;
      public void test(){ 
        System.out.print("A"); 
      } } public class B extends A{    int j=2;  public static void main(String[] args){ 
        A a = new B(); 
        a.test();
        System.out.println(a.i);
       // a.test2();
       // System.out.println(a.j);  }   public void test(){ 
        System.out.println("B"); 
      }  public void test2(){ 
        System.out.print("BB"); 
      }
    } 父类引用指向子类对象  虽然new 出来的 是B类型的 但是 a 引用  看到的只是 B里面含有A 内容(所继承的,也可以这样理解)的东西  也就是说 
    a。test2() 是不行的  a是父类引用  看不到B 里面B 特有的方法test2()【以及属性j】 是B 自己的 所以a 不能调用test2()
    方法
      

  7.   

    父类 对像=new 子类()这样写更具灵活性.
      

  8.   

    父类 对象名=new 子类();
    这样new出来的东西,它确实是一个“子类”的对象,但是系统却把它当做一个“父类”的对象来看待,当有多态存在时,才动态地去调用子类重写的方法。
    另外要说明的是,用instanceof("父类");和instanceof("父类");两者都是true
      

  9.   

    父类      子类 
    Person aa=new Student(); 
    这个表达式分三步: 
    1.你声明了一个Person(父)类型的指针或者说引用aa放在栈里。 
    2.在堆里new出一块空间Student(子),同时Student(子)这个空间里还包含一个Person(父) 
    3.然后aa指向堆里的这个Student(子)。 
      
    aa只能调用子继承父的东西(可以直白理解为共同拥有的,如属性,方法等),而不能用子类自己特有的。 当你aa.调用方法时    虚拟机是先去父类里找的,但是执行的时候是子类重写后的。