Kotlin基本的继承解决方案

如何使用初始值为ownerbalance创建新的SavingAccount

 open class BankAccount(val owner: String = "Long John Silver", private var balance: Double = 0.00) { constructor (amount: Double) : this() { this.balance = amount } fun deposit(amount: Double){ this.balance += amount } fun withdraw(amount: Double){ this.balance -= amount } fun getBalance(): Double{ return this.balance } } 

和孩子班

 class SavingAccount(val increasedBy: Double = 0.05): BankAccount(){ fun addInterest(): Unit{ val increasedBy = (this.getBalance() * increasedBy) deposit(amount = increasedBy) } } 

和主要

 fun main(args: Array<String>) { val sa = SavingAccount();// how to do this SavingAccount("Captain Flint", 20.00) println(sa.owner) println(sa.owner) } 

我如何创建一个新的用户SavingAccount ,没有默认值?

你可以用普通的Constructor-Arguments(因此没有属性)来实现它,并将它们传递给你的BankAccount

 class SavingAccount(owner: String, balance: Double, val increasedBy: Double = 0.05 ): BankAccount(owner, balance) { } 

SavingAccount默认值可以类似于BankAccount定义:

 class SavingAccount(owner: String = "Default Owner", balance: Double = 0.0, val increasedBy: Double = 0.05 ): BankAccount(owner, balance) { } 

改变你的类声明

 class SavingAccount(owner: String, balance: Double, val increasedBy: Double = 0.05): BankAccount(owner, balance)