KT
kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Demo for inheritance in abstract classes
// Characters are inspired by J.R.R. Tolkien
abstract class Monster(
val name: String,
var health: Int,
var power: Int) {
// subclass must override
abstract fun describe(): String
// subclass cannot override
fun takeDamage(damage: Int): String {
this.health -= damage
if (health <= 0) return "$name is dead."
else return "$name takes $damage damage."
}
// subclass can override if needed
open fun feed(): String {
this.health += 2
return "$name consumes some meat to regain energy."
}
}
class UrukHai(name: String):
Monster(name, 8, 10) {
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run