취약한 기반 클래스 2

[Kotlin] 코틀린 인터페이스 & 상속 제어 변경자

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 이전에 코틀린 클래스와 프로퍼티 기초를 배웠다. 이제부터 코틀린 클래스, 객체, 인터페이스에 대해 더 깊이 다룰 것이다. 먼저 코틀린의 클래스 계층을 정의하는 방식과 자바의 방식을 비교하자. 코틀린 인터페이스 코틀린 인터페이스는 자바 8 인터페이스와 비슷하다. 코틀린 인터페이스 안에는 추상 메서드 뿐 아니라 구현이 있는 메서드도 정의할 수 있다. (자바 8 의 디폴트 메서드처럼) 하지만 아무런 상태도 들어갈 수는 없다. 간단한 인터페이스 `Clickable` interface Clickable { fun click() } 이 인터페이스를 구현하는 구현 클래스(추상 클래스가 아닌)는 `cli..

Kotlin 2024.01.04

상속과 코드 재사용. 상속을 사용할 때 조심해야 할 점을 중심으로 - 코드로 이해하는 객체지향

재사용 관점에서 상속 은 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 기법입니다. 코드 재사용의 다른 방법으로는 합성이 있습니다. 새로운 클래스의 인스턴스 안에 기존 클래스의 인스턴스를 포함시키는 방법입니다. 합성은 다음 글에서 알아보고 이번에는 상속에 대해 자세히 알아봅니다. 상속과 중복 코드 DRY 원칙 중복 코드는 변경을 방해합니다. 중복 코드는 코드를 수정하는데 드는 비용을 더 증가시킵니다. 테스트를 할 때도 그렇죠. 중복 여부를 판단하는 기준은 모양이 아니라 변경입니다. 요구사항이 변경되었을 때 두 코드를 함께 수정해야 한다면 이 코드는 중복인 것입니다. 중복 여부를 결정하는 기준은 코드가 변경에 반응하는 방식입니다. 코드의 모양이 유사하다는 것은 단지 중..