반응형
1. 상속(inherit)
코틀린의 상속은 자바와 매우 비슷하다
자바의 상속
class Person {
private final name;
public Person(name) {
this.name = name;
}
}
public class Kim extends Person {
public Kim(name) {
super(name);
}
}
자바의 상속은 extends 키워드를 통해 가능하며, 이때 super를 통해 부모의 생성자를 호출할 수 있다
코틀린의 상속
(1)
open class Person(val name: String)
class Kim(name: String): Person(name)
(2)
open class Person(open val name: String)
class Kim(override val name: String): Person(name)
(3)
open class Person(val name: String)
class Kim(val name: String): Person(name)
(4)
open class Person(val name: String)
class Kim: Person{
constructor(name: String): super(name) {
println("생성자 호출됨")
}
constructor(): super("김철수")
}
코틀린은 클래스 생성의 끝부분에 :와 함께 상속하고자 하는 클래스를 지정하고 해당 클래스에 대한 주생성자에 맞게 값이 할당되도록 작성하면 된다
이때 부모 클래스의 앞에 open 키워드가 존재해야만 한다
자식 클래스에서 부모 클래스의 생성자를 호출하는 방법으로는 주생성자에서 호출할 수 도 있고 부생성자에서도 가능하다
자바와 다르게 코틀린의 super는 주생성자 또는 부생성자 옆에만 붙일 수 있다
코틀린의 상속도 자바와 마찬가지로 하나의 클래스에 대해서만 상속이 가능하다(다중 상속을 지원하지 않는다)
반응형
'공부' 카테고리의 다른 글
Kotlin 기본 문법 정리 - 인터페이스 (0) | 2025.07.24 |
---|---|
Kotlin 기본 문법 정리 - object (2) | 2025.07.23 |
Kotlin 기본 문법 정리 - 클래스(Class) (0) | 2025.07.21 |
Kotlin 기본 문법 정리 - 함수 (0) | 2025.07.18 |
Kotlin 기본 문법 정리 - 타입과 변수 (0) | 2025.07.17 |