java - Kotlin 基础继承方案

标签 java oop 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

最佳答案

您可以使用普通的构造函数参数(因此没有属性)实现它,并将它们传递到您的 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) {

}

关于java - Kotlin 基础继承方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226228/

相关文章:

java - 将函数作为参数传递以在 UI 线程上启动

javascript - JS MVC 游戏动态对象?

javascript - this._get 不是一个函数 - javascript oop 和原型(prototype)

android - 如何在 listView Kotlin 中获取图像

kotlin - 为什么 Kotlin 不能覆盖 List<*> 运算符方法?

java - 使用 Spring JdbcTemplate 插入数千行

java - Spring CrudRepository 方法 findAll() 返回一个空列表

java - 如何避免许多小类的代码重复?

java - 在 Android 11 (API 30) 中以编程方式更改状态栏文本颜色

java - 单击 jPanel (Java) 时如何调用函数?