[Kotlin] 오버라이딩, 추상화


[Kotlin] 오버라이딩, 추상화

상속 시에는 기본적으로 수퍼 클래스에 있는 같은 이름과 형태를 가진 함수는 서브 클래스에 만들 수 없다. 하지만 수퍼 클래스에서 허용만 한다면 오버라이딩이라는 방법으로 서브 클래스에서 같은 이름과 형태로 된 함수의 내용을 다시 구현할 수 있다. fun main(){ var t = Tiger() t.eat() } open class Animal(){ fun eat(){ println("음식 먹는다") } } class Tiger : Animal() 음식 먹는다 여기서 만약 Tiger 클래스에서 "음식 먹는다" 대신에 "고기 먹는다" 출력하려고 한다고 생각해보자. 하지만 이미 eat 함수는 Animal에서 "음식 먹는다"로 구현되어 있기에 서브 클래스에서 함수를 재구현할 수 없다. 만약 Animal 클래스 내부의 eat 함수에 open이 다음과 같이 붙어있다면 Tiger에서 재구현이 허용된다. open class Animal(){ open fun eat(){ println("음식 먹는다...


#공부 #안드로이드 #안드로이드앱 #코딩

원문링크 : [Kotlin] 오버라이딩, 추상화