您现在的位置: > 首页 > 程序开发 > Java教程
>> 最新教程
>> 热门教程
>> 最新游戏资讯
>> 热门游戏资讯
深入学习java构造函数
作者:本站                来自:安迪教程网                 加入时间:08-06-17                进入论坛讨论

  *来自对构造函数的继承,及相关调用思考得到,主要还是从《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)

  *枚举类

  *具有实例缓存的类

  *具有实例缓存的不可变类

联系方式:QQ:6084884 email:agwcn@126.com 粤ICP备05055782号
本网站中发布的文章只代表发表人的个人观点,不代表安迪教程网网站的立场
copyright© 2000-2004 安迪教程网 All rights reserved agwcn.com