abstract class Table {
private val records: Int
}
Run Code Online (Sandbox Code Playgroud)
是因为我们必须先创建一个抽象类的实例才能访问其私有成员吗?
Ale*_*nov 19
为了扩展@ Owen的答案:你可以声明私人成员.
abstract class Table {
private val records: Int = 0
}
Run Code Online (Sandbox Code Playgroud)
但是你不能声明抽象的私人成员.为什么?因为任何扩展抽象类的具体类必须覆盖任何抽象成员,并且它不能覆盖私有成员.所以你根本没有任何具体的课程Table.
Owe*_*wen 13
我想这是因为没有办法使它们具体化:
class Foo extends Table {
override val records = 3
}
Run Code Online (Sandbox Code Playgroud)
会失败,因为records是私人的Table.
它会变得Table毫无用处.我无法看到它会伤害任何东西,只是它几乎肯定表明程序员的错误.