반응형
1. Polymorphie 란?
다형성(Polymorphie)은 공통 인터페이스를 통해 다양한 클래스의 구현에 액세스 할 수 있게 해준다. Polymorphie는 그리스어에서 유래했으며 대략, "다양한 형태"를 의미하며 객체 지향 프로그레밍의 중심 개념 중 하나이다. 이는 우리가 같은 방식으로 매우 다르게 설계된 객체를 사용할 수 있게 해준다.
저번의 클래스 계층 구조의 예시로 들었던 것이다. 탈것 클래스 내에 ' 출발하다()' 라는 메서드가 있다고 가정해보자. 그러면 자전거 클래스와 차 클래스의 출발하다()라는 메서드의 구조는 서로 당연히 다를 것이다. (출발하다() 메서드의 어떤 구현이 선택되는지에 대한 결정은 런타임에서 발생한다고 한다.)
2. Overriding 오버라이딩
Super Class의 메서드를 Sub Class 에서 다르게(수정하거나 추가) 사용할 수 있는데, 이를 오버라이딩이라 한다.
open class Animal(val name : String, var age : Int, val type : String){
fun information(){
println("----정보---")
println("이름 : $name")
println("나이 : $age")
println("종류 : $type")
}
open fun crying() : Unit {}
}
class Dog (name:String, age:Int) : Animal(name, age, "개") {
override fun crying() {
println("월!월월!")
}
}
class Cat (name:String, age:Int) : Animal(name, age, "고양이") {
override fun crying() {
println("미야옹~")
}
}
출처:
내용 / 도움준 곳: 학교 교수님 (Christian Kohls) 강의
728x90
반응형
'언어 > Kotlin' 카테고리의 다른 글
Kotlin : Type-compatibility (ft. Upcast, Downcast) (1) | 2022.10.31 |
---|---|
Kotlin : Supertypes and Subtypes (0) | 2022.10.30 |
Kotlin : 상속 (inheritance) 적용해보기 (0) | 2022.10.28 |
Kotlin : 상속 (inheritance) (0) | 2022.10.20 |
Kotlin : Movie Maker produce() 함수 (0) | 2022.10.19 |