상속
fun main(array: Array<String>){
val superCar100 : SuperCar100 = SuperCar100()
superCar100.stop()
val bus100 : Bus100 = Bus100()
println(superCar100.drive())
}
open class Car100(){
open fun drive():String{
return "달린다"
}
fun stop(){
}
}
class SuperCar100(): Car100() {
override fun drive() :String{
val run = super.drive()
return "빨리 $run"
println("빨리달린다")
}
}
class Truck100(): Car100(){
}
class Bus100(): Car100(){
}
package Kotlin
fun main(array: Array<String>){
val superKnight :SuperKnight = SuperKnight(130,8)
val superMonster :SuperMonster = SuperMonster(100,10)
superMonster.attack(superKnight)
superMonster.bite(superKnight)
}
open class Character(var hp:Int, val power: Int){
fun attack(character:Character,power: Int=this.power){
character.defense(power)
}
open fun defense(damage: Int){
hp-=damage
if(hp>0) println("${javaClass.simpleName} 남은체력 $hp 입니다.")
else println("죽었습니다")
}
}
class SuperKnight(hp:Int, power: Int):Character(hp, power){
val defensePower=2
override fun defense(damage: Int) {
super.defense(damage-defensePower)
}
}
class SuperMonster( hp: Int, power: Int):Character(hp, power){
fun bite(character: Character){
super.attack(character,this.power+2)
}
}