【问题标题】:Why we are declaring the class as abstract class it has only concrete methods in it?为什么我们将类声明为抽象类,它只有具体的方法?
【发布时间】:2020-01-31 16:09:52
【问题描述】:

抽象类意味着,它既有抽象方法又有具体方法,但即使它只有具体方法,它也只是看起来像一个普通的方法而已。 以及为什么我们将类声明为抽象而没有任何抽象方法?

【问题讨论】:

  • NO,abstract 意味着它是抽象的,即不完整的,不能实例化 - 如果一个类有抽象方法,它必须是抽象的,但不是抽象类不能有抽象方法。Specificatoin 8.1.1.1. abstract Classes: "抽象类是一个不完整的类,或者被认为是不完整的。"

标签: java abstraction


【解决方案1】:

在某些情况下,您确实希望在多个类之间有一些共享的逻辑/字段/方法,但您不希望基类自己实例化,只实例化扩展类。

对于这样的用例,抽象类,即使没有任何抽象方法,也可以解决问题

【讨论】:

  • 或者可以遵循组合而不是继承。
【解决方案2】:

它可以是实现某些接口的基类:所有方法都是具体的,但并非接口的所有方法都实现了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-10
    • 2016-12-09
    • 1970-01-01
    • 2015-02-28
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多