본문 바로가기
Kotlin

Kotlin - 클래스의 상속, 내부 클래스, 추상 클래스

by 봄석 2019. 1. 3.

Kotlin - 클래스의 상속, 내부 클래스, 추상 클래스


클래스의 상속

코틀린에서는 클래스는 기본적으로 상속이 금지됩니다. 상속이 가능하게 하려면 open키워드를 

클래스 선언 앞에 추가합니다.

아래는 Animal 클래스를 상속받는 Dog 클래스를 나타냅니다.

open class Animal {
 
}
 
class dog:Animal(){
 

}



만약 상속받을 클래스가 생성자를 가지고 있다면 다음과 같이 상속받을 수 있습니다.

open class Animal(var name:String) {
 
}
 
class Dog(name:String):Animal(name){
    
}



부모 클래스의 생성자 프로퍼티를 자식클래스의 생성자로 받아야 합니다.



내부클래스

내부 클래스 선언에는 inner를 사용합니다. 내부 클래스는 외부 클래스에 대한 참조를 가지고 있습니다. 아래 코드에 inner가 없다면 a를 20으로 변경할 수 없습니다.

class OuterClass{
    var a=10
 
 
    //내부클래
    inner class OuterClass2{
        fun somting(){
            a=20
        }
    }

}




추상클래스

추상클래스는 미구현 메소드가 포함된 클래스를 말합니다. 클래스와 미구현 메소드앞에 

abstract 키워드를 붙힙니다. 추상 클래스는 직접 인스턴스화 할 수없고 다른 클래스가 상속하여 미구현 메소드를 구현해야 합니다. 기본적으로 자바와 동일한 특성을 가집니다

abstract class A{
    abstract fun func()
    fun func2(){
 
    }
}
 
class B:A(){
    override fun func(){
        println("hello")
    }
}
 
val a = A() //에러

val b = B() //OK



'Kotlin' 카테고리의 다른 글

Kotlin - null 가능성, lateinit ,lazy  (0) 2019.01.03
Kotlin - 인터페이스  (0) 2019.01.03
Kotlin - 프로퍼티, 접근제한자  (0) 2019.01.03
Kotlin - 클래스  (0) 2019.01.03
Kotlin - 제어문  (0) 2019.01.03

댓글