10-12java

1.

package com.mesakii.test;

public class Base_Sub {
    class Base{
        public Base() {
            test();
        }
        public void test() {
            System.out.println("这个test方法将被子类重写");
        }
    }
     class Sub extends Base{
        private String name;
        public void test() {
            System.out.println("子类重写父类的方法,其name字符串的长度为"+name.length());
        }
        public void main(String[] args) {
            //Sub s  = new Sub();
            /*
             * 上面这句话会产生错误,当系统视图创建Sub的对象s时,会先执行父类的构造器,而父类的构造器中调用的test()方法又被子类重写,所以对象s
             * 先执行父类的构造器,构造器重调用的方法是子类的方法,子类中的name 为空,所以,发生指针异常
             */
        }
    }

}

 

posted @ 2017-10-12 17:43  mesakii  阅读(116)  评论(0编辑  收藏  举报