【问题标题】:Should abstract classes have implementation in Kotlin抽象类是否应该在 Kotlin 中实现
【发布时间】:2019-12-09 09:08:11
【问题描述】:

在 Java 中,我习惯于看到没有任何实现的抽象类。我不记得了,但我认为甚至不可能包含实现细节。但在 Kotlin 中,我看到抽象类包含实现细节。我不明白的是 Kotlin 文档明确指出:

抽象成员在其类中没有实现

https://kotlinlang.org/docs/reference/classes.html

有人可以解释为什么文档与您可以在抽象类中实现细节这一事实相矛盾。

【问题讨论】:

  • 可以添加一个简单的代码示例吗?
  • 不需要代码示例。任何具有在这些函数中实现的函数的类都可以用作抽象类。我认为文档不正确。
  • 好吧,您绝对应该添加一个简单的代码示例,因为您的问题不清楚,至于“在抽象类中实现细节”是什么意思,以及您希望 Java 之间没有什么不同的行为和 Kotlin 抽象类完全一样。

标签: kotlin


【解决方案1】:

引用仅适用于abstract 成员abstract 类可能有非 abstract 成员。这些成员必须有一个实现:

abstract class AbstractClass {
    abstract val abstractVal: Int
    fun notAbstractFun(): String = "Implementation details"
}

【讨论】:

    猜你喜欢
    • 2013-10-05
    • 2010-10-27
    • 2010-11-03
    • 2013-08-23
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多