Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482257
  • 博文数量: 35
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1234
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-06 22:48
文章分类

全部博文(35)

文章存档

2008年(35)

我的朋友

分类: 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();

阅读(6276) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-09-19 22:24:04

Calendar是抽象类,不能用new生成实例对象

chinaunix网友2008-05-06 13:06:36

单例模式