[Kotlin] 클래스의 다형성


[Kotlin] 클래스의 다형성

'클래스의 상속'을 통해 클래스를 확장하는 법을 배웠다. 하지만 클래스를 다형성의 관점에서 살펴본 적은 없다. 예를 들어 음료를 마실 때 목이 말라서 아무거나 마셔도 될 때가 있지만 원하는 음료를 선택하 때도 있을 것이다. 이 때 콜라를 콜라 자체로도 볼 수 있지만 음료라는 특성으로도 볼 수 있도록 만드는 것이 다형성의 개념이다. Drink 클래스가 수퍼 클래스, Cola가 서브 클래스라고 한다면 Cola 인스턴스에 Drink의 객체공간과 Cola의 추가 공간이 생성된다. var a : Drink = Cola() 처럼 하면 음료의 기능만 사용할 수 있고 var b : Cola = Cola() 처럼 하면 음료와 콜라의 기능까지 모두 사용할 수 있다. 이 때 콜라 인스턴스를 음료 변수에 담는 행위를 상위 자료형인 수퍼 클래스로 변환한다고 하여 Up-Casting이라고 한다. Up-Casting된 인스턴스를 다시 하위 자료형으로 변환하면 Down-Casting이라고 한다. Up-Casti...


#개발자 #안드로이드 #안드로이드앱 #앱 #코딩 #코틀린

원문링크 : [Kotlin] 클래스의 다형성