iteye_5269 2008-11-25 10: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 12: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条)

报告相同问题?

悬赏问题

  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起