Как создать новую SavingAccount
с значениями init для owner
и balance
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
для нового пользователя без значений по умолчанию?
Вы можете реализовать его с помощью обычных конструктор-аргументов (следовательно, нет свойств) и передать их в свой 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)