码迷,mamicode.com
首页 > 编程语言 > 详细

<EffectiveJava>读书笔记--01继承的使用注意

时间:2017-04-10 14:48:42      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:class   调用   override   xtend   main   log   str   没有   rri   

1, 父类的构造器方法中不能调用能够被子类重写的方法.

  分析:

    当初始化一个子类时, 首先要初始化父类, 即调用父类的构造方法;

    如果父类的构造方法中调用了可被重写的其它方法, 那么此时调用的其实是该子类中重写的方法;

    因此子类还没有初始化, 所以可能会造成一些问题.

    示例代码如下:

    父类:

public class Father1 {
    public Father1() {
        overRide1();
    }

    public void overRide1(){
        System.out.println("父类的成员方法..................................");
    }
}

子类:

public class Son1 extends Father1 {

    private final Date date;
    public Son1() {
        date = new Date();
    }

    @Override
    public void overRide1() {
        System.out.println(date);
    }

    public static void main(String[] args) {
        Son1 son1 = new Son1();
        son1.overRide1();
    }
}

 

如果运行子类的main方法, 那么控制台的输出的结果其实是:

null
Mon Apr 10 12:55:48 CST 2017

说明父类初始化时, 构造方法中调用的是子类的overRide1方法;

 

<EffectiveJava>读书笔记--01继承的使用注意

标签:class   调用   override   xtend   main   log   str   没有   rri   

原文地址:http://www.cnblogs.com/wyisprogramming/p/6688715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!