解决方案 »

  1.   

    这就是多态的典型体现,new的第一个量是继承自Super的Sub类,在执行sup.field时,由于父类“指针”指向子类对象,所以执行的应该是super的filed;而在执行sup.getSuperField()实际上由于子类Sub中重写了父类的getSuperFiled()方法,所以调用的应该是子类 Sub的的getSuperFiled()方法。
      

  2.   

    在多态机制中(这里 Super sup = new Sub())
    用 sup 调用的变量值(若子类和父类有相同的变量) 结果为 父类中的 变量 
     调用子类重写父类的方法时调用的是子类的方法
      

  3.   


    Super sup = new Sub(); 这里的sup是父类引用指向子类对象sup.field; 那么这里的sup为什么会指向父类对象的field,而不是子类对象的fieldsup.getField(); 那么这里为什么又指向了子类对象的getField()方法,而不是父类对象的getField()既然在初始化时父类引用指向了子类对象,为何会出现既有指向父类对象的域,又有指向子类对象的域。为什么不同时指向子类对象,或者同时指向父类对象。能说说为什么吗?不要只是单纯的现象。
      

  4.   


    Super sup = new Sub(); 这里的sup是父类引用指向子类对象sup.field; 那么这里的sup为什么会指向父类对象的field,而不是子类对象的fieldsup.getField(); 那么这里为什么又指向了子类对象的getField()方法,而不是父类对象的getField()既然在初始化时父类引用指向了子类对象,为何会出现既有指向父类对象的域,又有指向子类对象的域。为什么不同时指向子类对象,或者同时指向父类对象。能解释一下为什么会这样,而不是现象
      

  5.   


    你需要的是实用,但是你不懂原理,不懂java的思想,无论干多久你也不会是系统架构师,或者其他。
    你可以不求甚解,那是你的做法,我需要知道更多,这是我的做法。
      

  6.   


    Super sup = new Sub(); 这里的sup是父类引用指向子类对象sup.field; 那么这里的sup为什么会指向父类对象的field,而不是子类对象的fieldsup.getField(); 那么这里为什么又指向了子类对象的getField()方法,而不是父类对象的getField()既然在初始化时父类引用指向了子类对象,为何会出现既有指向父类对象的域,又有指向子类对象的域。为什么不同时指向子类对象,或者同时指向父类对象。能说说为什么吗?不要只是单纯的现象。
    变量和方法不一样,“多态是针对子类重写父类的方法的,但对变量则没有多态”(这句不是我说的)。