Kotlin, 15. 인터페이스와 추상 클래스

이도현·2023년 8월 10일
0

Kotlin 공부

목록 보기
15/20

1. 인터페이스 정의하기

  • 추상 함수: 시그니처만 선언하고 몸체의 구현코드가 없는 함수
  • 인터페이스: 속성명, 추상 함수로 구성됨 인스턴스화 할 수 없음
//creature.kt
interface Fightable{
  var healthPoints: Int
  var diceCount: Int
  var diceSides: Int
  var damageRoll: Int
  
  fun attack(opponent: Fightable): Int
}

2. 인터페이스 구현하기

class Player(_name: String,
  override var healthPoints: Int = 100,
  var isBlessed: Boolean = false,
  private var isImmortal: Boolean) : Fightable {
  
  override val diceCount = 3
  override val diceSides = 6
  
  override fun attack(oppont: Fightable): Int {
    val damageDealt = if(isBlessed) {
    	damageRoll * 2
    } else {
    	damageRoll
    }
    opponent.healthPoints -= damageDealt
    return damageDealt
  }
}
profile
좋은 지식 나누어요

0개의 댓글