2019年4月8日月曜日

開発環境

Head First Kotlin: A Brain-Friendly Guide (Dawn Griffiths(著)、David Griffiths(著)、O'Reilly Media)のChapter 5(subclasses and superclasses - Using Your Inheritance)、BE the Compiler(151)の解答を求めてみる。

コード

// 1Aと1B
// 2Aはopenが無いから上書きできない
// 3Bは出力に必要な関数が上書きされてない
open class Monster {
    open fun frighten(): Boolean {
        println("Aargh!")
        return true
    }
}

class Vampyre : Monster() {
    override fun frighten(): Boolean {
        println("Fancy a bite?")
        return false
    }
}

class Dragon : Monster() {
    override fun frighten(): Boolean {
        println("Fire!")
        return true
    }
}

fun main() {
    val m = arrayOf(
        Vampyre(),
        Dragon(),
        Monster()
    )
    for (item in m) {
        item.frighten()
    }
}

入出力結果

Fancy a bite?
Fire!
Aargh!

Process finished with exit code 0

0 コメント:

コメントを投稿