abstract class Table {
private val records: Int
}
是否因为我们必须先创建一个抽象类的实例才能访问其私有成员?
答案 0 :(得分:19)
对@ Owen的答案进行一点延伸:你可以宣布私人成员。
abstract class Table {
private val records: Int = 0
}
但是你不能宣布抽象的私人成员。为什么?因为任何扩展抽象类的具体类必须覆盖任何抽象成员,并且它不能覆盖私有成员。所以你根本没有任何扩展Table
的具体类。
答案 1 :(得分:13)
我想这是因为没有办法让它们具体化:
class Foo extends Table {
override val records = 3
}
会失败,因为records
对Table
是私有的。
这会使Table
变得毫无用处。我无法看到它会伤害任何东西,只是它几乎肯定表示程序员的错误。