안드로이드 개발자의 창고
[14일차 Kotlin] 상속 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 상속이란?
- 클래스를 설계할 때 다른 클래스가 가지고 있는 부분을 물려 받는 것을 의미한다.
- 이를 통해 클래스마다 중복된 부분을 클래스 한 곳에 만들 수 있다.
- 상속을 하는 클래스를 부모 클래스(SuperClass)라고 하며 상속을 받는 클래스를 자식 클래스(SubClass)라고 한다.
-
부모 클래스는 open 키워드를 사용해야 한다. open 키워드를 사용하지 않으면 자바 코드로 변경될 때 final 키워드가 붙는다.
📖 예제 코드
open class SuperClass{
var superMember1 = 100
constructor(){
println("SuperClass의 기본 생성자")
}
fun superMethod1(){
println("SuperClass1의 메서드 입니다")
}
}
class SubClass1 : SuperClass(){
val subMember1 = 200
fun subMethod1(){
println("SubClass1의 메서드 입니다")
}
}
✔️ 코드 해석
- Kotlin에서 클래스를 정의하면 Java 코드 final 클래스로 변환된다.
- Java의 final 클래스는 상속이 불가능하다.
- 상속을 하는 클래스에 open 키워드를 붙여 일반 클래스로 정의한다.
- open 키워드를 통해 상속이 가능해진다.
✔️ 생성자가 있는 부모 클래스 예제 코드
open class SuperClass2(var a1:Int)
class SubClass2 : SuperClass2{
// 부모 생성자 호출
constructor() : super(100){
// 필요한 코드 작성
}
}
class SubClass3 : SuperClass2(100)
✔️ 코드 해석
- SuperClass2에 open 키워드를 붙여 상속을 하는 부모 클래스로 정의한다.
- SubClass2는 SuperClass2를 상속받는다.
- 클래스의 객체를 생성하면 부모 클래스의 기본 생성자(매개변수가 없는)가 자동으로 호출된다.
- 만약 부모 클래스에 기본 생성자가 없다면 자식 클래스에서 명시적으로 호출해줘야 한다.
- 생성자에 작성할 코드가 없다면 SubClass3처럼 간략하게 정의할 수 있다.
'Computer > Kotlin' 카테고리의 다른 글
[14일차 Kotlin] 접근제한자 (0) | 2023.05.16 |
---|---|
[14일차 Kotlin] 패키지(Package)와 모듈(Module) (0) | 2023.05.16 |
[13일차 kotlin] init과 생성자(constructor) (0) | 2023.05.14 |
[13일차 Kotlin] 객체지향 프로그래밍 (0) | 2023.05.14 |
[12일차 Kotlin] 반복문(Loop) (0) | 2023.05.12 |