240510_디모의 코틀린 강의 #10강. 클래스의 상속
2024. 5. 6. 21:07ㆍTIL(Today I Learned)
유튜브 - 디모의 코틀린 문법 강의 정리
#10강. 클래스의 상속
1. 클래스의 분류
1) 수퍼 클래스: 물려주는 클래스
2) 서브 클래스: 물려받는 클래스
class Animal(var name:String, var age:Int, var type:String){
fun introduce(){
println("${type} ${name}이고 ${age}살입니다.")
}
}
2. 클래스의 규칙
1) 서브 클래스는 수퍼 클래스에 존재하는 속성와 같은 이름의 속성을 가질 수 없다.
2) 서브 클래스가 생성될 때는 반드시 수퍼 클래스의 생성자까지 호출되어야 한다.
// Animal 클래스로부터 상속받는 Dog, Cat 클래스를 생성
open class Animal(var name:String, var age:Int, var type:String)){
// 클래스가 상속될 수 있도록 클래스 선언 시 키워드 open을 같이 작성
fun introduce("${type} ${name}이고 ${age}살입니다.")
}
// 상속하는 방법: 콜론(:) + 슈퍼클래스의 생성자를 호출(서브 클래스의 고정된 속성값은 그 고정값을 작성)
// Dog 클래스를 생성
class Dog(name:String, age:Int): Animal(name, age, "개")
// 서브클래스 안에 고유한 함수를 추가할 수 있음
class Dog(name:String, age:Int): Animal(name, age, "개"){
fun bark(){
printin("멍멍"))
}
}
// Cat 클래스를 생성
class Cat(name:String, age:Int) : Animal(name, age, "고양이"){
fun meow(){
println("야옹")
}
}
var c = Cat("나비", 5)
c.meow() // -> 야옹
// 주의사항: 지나친 상속 구조는 클래스를 복잡하게 만들 수 있다.
'TIL(Today I Learned)' 카테고리의 다른 글
240514_디모의 코틀린 강의 #12강. 기본 프로젝트 구조 (0) | 2024.05.14 |
---|---|
240513_디모의 코틀린 강의 #11강. 오버라이딩과 추상화 (0) | 2024.05.14 |
240509_디모의 코틀린 문법 강의 #9강. 클래스의 생성자 (0) | 2024.05.06 |
240508_디모의 코틀린 문법 강의 #8강. 클래스의 기본 구조 (0) | 2024.05.06 |
240507_디모의 코틀린 문법 강의 정리 #7강. 흐름제어와 논리연산자 (0) | 2024.05.06 |