注册
 找回密码
 注册
江西广告网
查看: 315|回复: 0
打印 上一主题 下一主题

深入学习java

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-16 09:43:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
*来自对构造函数的继承,及相关调用思考得到,主要还是从《java面向对象编程》得来 *在多级继承的情况下,将从继承树的最上层的父类开始,依次执行各个类的构造方法, 这可以保证子类对象从所有直接或间接父类中继承来的实例都被正确的初始化。 *当子类的构造方法没有用super语句显示的调用父类的构造方法,而父类中又没有提供默 认的构造方法(jdk提供的默认构造方法)时,将会出现编译错误。 public class Grapha { // public Grapha() { // System.out.println("Grapha()"); // } public Grapha(String name) { System.out.println("Grapha()"); } } class Father extends Grapha{ /** * a compile error happen. * implicit super constructor Grapha() is undifined,must explicity invoke another constructor **/ public Father() { System.out.println("Father()"); } /** * a compile error happen. * implicit super constructor Grapha() is undifined,must explicity invoke another constructor **/ public Father(String name){ } } *从上面可以得出,如果一个类即不允许其他程序员用new语句来构造它的实例,又不允许它有子类,就可以 把它所有的构造方法定义为private的。 另外一种使一个类不能有子类的方法是将类声明改为final的。 由上面可以想到用静态工厂模式: *单例模式(singleton) *枚举类 *具有实例缓存的类 *具有实例缓存的不可变类
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表