'Supertypes #Subtypes' 태그의 글 목록

Supertypes #Subtypes 2

Kotlin : Type-compatibility (ft. Upcast, Downcast)

1. Type-compatibility, 타입 호환성 일반적으로 더 일반적인 타입의 변수에 더 구체적인(더 전문화된) 타입의 개체를 할당하는 것은 항상 가능하다. 더 일반적인 유형은 더 적은 수의 가능한 작업을 정의하고 하위 타입이 상위 타입의 모든 작업을 허용한다는 것이 보장되어 있기 때문이다. 밑에 예를 보자. a와 p는 당연히 문제될 게 전혀 없다. 반면에 좀 살펴봐야 할 부분은 p2와 a2 다. p2는 Actor 타입이 상위 타입인 Person 타입의 모든 작업들이 허용 가능하니 문제되지 않는다 [모든 영화배우는 사람이다]. a2는 Person 타입이 하위타입(더 전문화된)인 Actor의 모든 작업들이 실행 가능하지 않으므로 프로그래밍 실행 전 이미 컴파일러 에러가 뜬다 [모든 사람은 영화배우가 ..

언어/Kotlin 2022.10.31

Kotlin : Supertypes and Subtypes

1.타입과 클래스 속성의 상속은 코드중복을 피할 수 있는, 합리적인 방법일 뿐만이 아니라 객체들 사이간에 타입관계들을 결정짓는다. 한 객체의 Type은 그 객체에서 수행할 수 있는 모든 작업들을 결정짓는다. 숫자 자료형들이 특정 연산만 가능한 것처럼, 객체의 유형에 따라 특정 작업만이 가능하다. 예를 들어 객체 내에 정의된 메서드들. 작업에는 보여지는 속성의 읽기와 쓰기도 포함된다. 1.5 Supertypes and Subtypes, 상위타입과 하위타입 Director 클래스는 Person 클래스에서 파생되었고 확장되었다. '확장'이란 속성과 메서드들이 추가돠는 동시에 Person 클래스가 가지고 있던 기존 속성 및 메서드가 모두 상속되는 것을 의미한다. 이는 하위 클래스의 객체들이 상위 클래스의 객체들..

언어/Kotlin 2022.10.30