開発環境
- macOS Mojave - Apple (OS)
- Windows 10 Pro (OS)
- IntelliJ IDEA CE(Community Edition) (IDE(統合開発環境))
- Kotlin (プログラミング言語)
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 コメント:
コメントを投稿