public Super(){
        overrideMe();
    } overrideMe();改成this. overrideMe();看看结果

解决方案 »

  1.   

    你看看我这个顺序,也许对你有帮助。
    package com.zq.test;public class Super {
        
        public Super(){
         System.out.println("父类被构建");
            overrideMe();
        }
         
        public void overrideMe(){
         System.out.println("方法重写前");
            System.out.println("父类Super方法");
        }
     
    }
    package com.zq.test;import java.util.Date;public class Sub extends Super{
        
        private final Date date ;
         
     
        Sub(){
         System.out.println("子类被构建");
            date =new Date();
        }
     
        @Override
        public void overrideMe() {
             System.out.println("方法重写后");
            System.out.println(date);
        }
         
        public static void main(String[] args) {
            Sub sub =new Sub();
            sub.overrideMe();
             
        }
         
    }
      

  2.   

    这不就是面向对象吗
    你在父类里打印下当子类调用父类构造的时候 可以看到此时this的类型是子类sub
    public Super(){
           System.out.println(this.getClass().getName());
            overrideMe();
        }
      

  3.   

    我以为进入父类构造函数,应该有个父类的对象,然后执行父类的overrideMe()方法 ; 
    记得好像有这个说法啊 :没有父类 哪有子类。
    5楼解释了进入父类构造函数的对象 还是子类对象.........