Archives
Recent Posts
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[14일차 Kotlin] 상속 본문

Computer/Kotlin

[14일차 Kotlin] 상속

Wise-99 2023. 5. 16. 07:02

 

 

출처 : 안드로이드 앱스쿨 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처럼 간략하게 정의할 수 있다.