iteye_5269 2008-11-25 02:18
浏览 176
已采纳

abstract class的使用

为什么这里用的是abstract class ,原理是什么,为什么要这样设计,如果这样设计接下来又怎么使用?

public abstract class BaseHibernateObjectDao   

                extends HibernateDaoSupportimplements BaseObjectDao {



......



}
问题补充:
我之前自己的写法是

public class BaseHibernateObjectDao   

                extends HibernateDaoSupportimplements BaseObjectDao {



......



}



然后每个实体dao extends BaseHibernateObjectDao ,那么BaseHibernateObjectDao中的方法实现就会被其它的实体Dao所拥有,而每个实体dao自己的部分可以实现自己的dao接口.那和前面的abstract class有什么不同?

展开全部

  • 写回答

3条回答 默认 最新

  • mayday85 2008-11-25 04:59
    关注

    [quote]那和前面的abstract class有什么不同[/quote]

    不同就在于你写的BaseHibernateObjectDao也可以new出来 被别人使用
    你自己写代码可能看不出来不同 因为你铁定不会去用BaseHibernateObjectDao
    但是如果分工是你写dao,别人写biz
    那说不定别人就会去用BaseHibernateObjectDao了,而这不是你希望的

    大家都是新人,自己写底层类给别人去用的机会少
    但是你可以看看java的类库 比如集合类java.util.AbstractCollection
    你只能用现成的HashMap Hashset LinkedList之类
    但是拥有他们共有方法的AbstractCollection你就用不了
    首先这里面可能有未实现的方法 也可能里面的方法根本不够用的
    加上了Abstract就不会让不知情的人瞎用

    另外有天你觉得HashMap Hashset LinkedList都TMD垃圾
    自己想写一个集合类 你可以直接继承AbstractCollection 省力得多

    说了这么多 这个问题必须是多人开发才能看出优点 你自己一个人写 当然不明白了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部