상속시의 생성자
상속이란 다른 클래스를 참조해서 클래스를 선언하는 것을 의미한다.
코틀린에서 상속이란 선언부에 콜론과 함께 상속받을 클래스의 이름과 괄호를 입력하면된다.
상위 클래스는 하위 클래스에서 참조할 수 있도록 open 키워드를 사용한다.
또한 하위 클래스에서 상위 클래스를 상속할 때는 상위 클래스의 상속자를 같이 호출해주어야 한다.
open class SuperClass{ // 다른 클래스가 상속 받을 수 있도록 open 키워드 사용
}
class SubClass: SuperClass(){ // SuperClass를 상속받는 SubClass
}
만약 하위 생성자에 보조 생성자만 존재한다면 다음과 같이 선언하는 것 또한 가능하다.
open class SuperClass(name: String){ // 다른 클래스가 상속 받을 수 있도록 open 키워드 사용
}
class SubClass: SuperClass(){ // SuperClass를 상속받는 SubClass
constructor(name: String): super(name){
}
}
오버라이딩
오버라이딩(Overriding)이란 상위 클래스에 선언된 변수나 함수를 같은 이름으로 하위 클래스에서 다시 선언하는 것이다.
코틀린에서 오버라이딩을 사용하려면 다음과 같은 조건들이 있다.
- 상위 클래스에서 오버라이딩을 선언하고 싶은 함수나 멤버 변수 앞에 open 키워드를 붙여야한다.
- 하위 클래스에서 오버라이딩을 선언하고 싶은 함수나 멤버 변수 앞에 override 키워드를 붙여야한다.
open class SuperClass{
open var data = 10
open fun function(){
println("Super class")
}
}
class SubClass: SuperClass(){
override var data = 20
override fun function(){
println("Sub class")
}
}
접근 제한자
접근 제한자란 클래스의 멤버를 어느 범위까지 이용할 수 있게 하는가 제한하는 키워드이다.
코틀린에서의 접근 제한자는 public, internal, protected, private 등이 있다.
| 접근 제한자 | 최상위 사용 | 클래스 멤버 이용 |
| public | 모든 파일에서 가능 | 모든 클래스에서 가능 |
| internal | 같은 모듈이내에서 가능 | 같은 모듈이내에서 가능 |
| protected | 사용 불가 | 상속 관계의 하위 클래스에서만 가능 |
| private | 파일 내부에서만 이용 | 클래스 내부에서만 이용 |
'Languages > Kotlin' 카테고리의 다른 글
| [Kotlin] 데이터 클래스 (1) | 2023.04.18 |
|---|---|
| [Kotlin] 클래스와 생성자(Class, Constructor) (0) | 2023.03.28 |
| [Kotlin] 제어문(If, When, For, While) (0) | 2023.03.16 |
| [Kotlin] 코틀린의 컬렉션(List, Set, Map) (0) | 2023.03.15 |
| [Kotlin] 배열(Arrray) (0) | 2023.03.14 |
댓글