分类: Java
2008-04-28 20:22:26
拿Calender类来说,他本身是个抽象类,有部分方法需要是抽象的,所以本身不能通过new的方法来实例化,需要借助于一些已经把抽象方法实现的子类来实例化,实例化方法都写在getInstance()方法里,你可以参考以下源代码。
他这么设计实际上是非常巧妙的,当对抽象方法的普遍实现(使用getInstance()来实例化)不能满足你的需求的时候,你就应该自己来实现它。比如:
public class CalenderEx extends Calender {
}
Calender cal = new CalenderEx();
ABC aa=new ABC();
aa就可以用ABC里面的方法和属性(public和默认),
那么如果ABC里面有一个 public ABC dis()的方法,
那我 ABC aa=ABC.dis();
那aa能不能用ABC里面所有的方法和属性(public和默认)
就像 java.util.Calendar类一样 他有一个 Calendar getInstance()的方法
我在书上看到
Calendar obj=Calendar.getInstance();
然后obj都可以用Calendar里面所有的方法属性(public和默认)
能告诉一下我 这样实力化的作用吗???为什么他不Calendar obj= new Calendar();