데브허브 | DEVHUB | 코틀린 기초 문법 - 22일차 / class 클래스 상속코틀린 기초 문법 - 22일차 / class 클래스 상속
- 상속은 부모 클래스의 속성과 스킬을 자식 클래스가 물려받아 확장하는 개념입니다. 🧬
- 상속은 공통 로직과 속성을 재사용하고, 수정 사항 발생 시 부모 클래스에서 일괄 처리하여 코드 유지보수를 용이하게 합니다. ♻️
- 클래스를 상속 가능하게 하려면
open 키워드를 클래스 선언 앞에 붙여야 합니다. 🔑
- 자식 클래스는 부모 클래스 이름 뒤에 콜론(
:)을 붙여 상속하며, 부모의 생성자를 호출해야 합니다. 🔗
- 부모 클래스의 주 생성자에 매개변수가 있다면, 자식 클래스는 자신의 주 생성자에서 해당 매개변수를 받아 부모 생성자에 전달해야 합니다. 🏗️
- 자식 클래스의 보조 생성자를 사용할 경우,
super() 키워드를 통해 부모 클래스의 생성자를 명시적으로 호출해야 합니다. 🛠️
super 키워드는 상속받은 부모(슈퍼) 클래스의 멤버에 접근하거나 메서드를 호출할 때 사용됩니다. ⬆️
- 상속 관계에서 상위 클래스는 슈퍼 클래스(부모 클래스), 하위 클래스는 서브 클래스(자식 클래스)라고 부릅니다. 👨👩👧
- 부모 클래스의 메서드를 재정의(오버라이드)하려면 부모 메서드에
open, 자식 메서드에 override 키워드를 사용하며, super.메서드()로 부모의 기능을 호출할 수 있습니다. 🔄
- 멤버 변수(프로퍼티)도
open 및 override 키워드를 사용하여 재정의할 수 있으며, 게터(getter)와 세터(setter)를 통해 접근 방식을 제어할 수 있습니다. 📝
abstract class는 직접 인스턴스화할 수 없으며, 반드시 상속을 통해 구체적인 구현을 제공해야 하는 추상 클래스를 정의합니다. 👻
- 자식 클래스 객체는 부모 클래스 타입으로도 참조될 수 있어, 다형성(Polymorphism)을 통해 유연한 코드 작성이 가능합니다. 🎭
- 실제 안드로이드/코틀린 프로젝트에서
AppCompatActivity, CoroutineWorker 등은 상속과 오버라이드를 활발히 활용하는 대표적인 예시입니다. 📱