ihavefaith
2011-05-07 16:06
浏览 470
已采纳

为什么要有抽象类?

我的父类有个空的方法,然后子类继承父类,实现那个空的方法。我觉得这就行了,没必要把父类中空的方法整成抽象的,紧接着父类也抽象成抽象类,感觉这么做,有点多此一举,为什么要有抽象类呢?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • suziwen 2011-05-07 16:13
    已采纳

    抽像类可以控制子类必须实现特定的方法 ,
    别人也不能直接实例你的抽像类,必须 实例抽像类的实现类

    多看一些开源的代码,看看设计模式就知道为什么要有抽象类.

    有些东西不是说下就能明白的,还是得代码 写到一定程度 就会有体会 的

    打赏 评论
  • redstarofsleep 2011-05-07 16:42

    抽象类可以告诉类的使用者,这是一个抽象类,不能被实例化.
    而且实现它的子类必须要实现特定的抽象方法.
    普通的类就没有这些限制了,用抽象类更安全,防止调用者误用

    打赏 评论
  • zoroisa 2011-05-07 17:16

    刚才仔细想了想“我的父类有个空的方法,然后子类继承父类,实现那个空的方法。”

    如果是带有返回值的方法呢?比如
    抽象类可以写成 public abstract int sum();
    而父类必须有返回值,至少得是 public int sum(){return xx;},已经不是空方法了。
    如果子类继承父类,忘了重写sum方法的话,那就很危险,父类的方法已经不是子类想要的了。而抽象类规定子类必须要实现抽象方法,所以不会忘记写sum方法,很安全。

    不知道我说的对不对,刚学java不久,共同交流。

    打赏 评论

相关推荐 更多相似问题