作者:木子小平方_530 | 来源:互联网 | 2022-10-25 13:11
我试图创建一个接口,以强制其派生类具有一定的属性,但只能使用公共获取程序。由于我不想在其私有范围之外进行更改,因此我不希望它实现公共集。
interface Transaction{
var transferDate: Date get //I only require a get, no set
}
class MoneyTransaction(){
override var transferDate: Date get private set
/*private set does not work*/
}
tynn..
5
属性是某些数据的访问器。您将拥有一个吸气剂,并且如果该属性是可变的,那么它也会是一个setter。因此,您可以val
使用var
属性覆盖任何已声明的属性:
interface Transaction {
val transferDate: Date
}
class MoneyTransaction: Transaction {
override lateinit var transferDate: Date
private set
}
请注意,lateinit var
如果使用对象初始化属性,则无需将其设置为a 。我只是添加了它,以使您的示例正确编译。
1> tynn..:
属性是某些数据的访问器。您将拥有一个吸气剂,并且如果该属性是可变的,那么它也会是一个setter。因此,您可以val
使用var
属性覆盖任何已声明的属性:
interface Transaction {
val transferDate: Date
}
class MoneyTransaction: Transaction {
override lateinit var transferDate: Date
private set
}
请注意,lateinit var
如果使用对象初始化属性,则无需将其设置为a 。我只是添加了它,以使您的示例正确编译。