티스토리 뷰
출처: 테크과학! DiMo테크과학! DiMo
상속을 사용하는 이유는 다음과 같다.
- 기존 class의 기능을 활용하여 새로운 기능을 추가하는 class 만드는 경우
- 여러 개의 class를 만들었는데, 공통적인 기능이 있어 이를 따로 class로 만들어 관리하려고 하는 경우
Super Class: 여기서 속성과 함수를 물려주는 쪽
Sub Class: 여기서 속성과 함수를 물려받는 쪽
Kotlin에서 상속의 조건은 2가지 있음.
- Sub Class는 Super Class에 존재하는 속성과 같은 이름의 속성을 갖을 수 없음
- Sub Class가 호출될 때는 반드시 Super Class의 생성자까지 호출되어야 함.
fun main(args: Array<String>) {
var a = Animal("별이", 5, "개")
var b = Dog("별이", 5)
a.introduce()
b.introduce()
b.bark()
var c = Cat("루이", 5)
c.introduce()
c.meow()
}
open class Animal(var name: String, var age: Int, var type: String) {
fun introduce() {
println("저는 ${type} ${name}이고 ${age}살 입니다.")
}
}
class Dog(name: String, age:Int): Animal(name, age, "개") {
fun bark() {
println("멍멍!")
}
}
class Cat(name:String, age:Int): Animal(name, age, "고양이") {
fun meow() {
println("냐옹!")
}
}
Kotlin에서 상속하기 위해서는 open이라는 키워드를 꼭 넣어주어야 함. 이후 sub class는 super class의 속성과 같은 이름의 속성을 선언하면 안됨. 즉
var name: String, var age: Int와 같이 생성자를 선언하면 안 된다는 것임.
따라서 name: String, age: Int로 super class의 속성을 일반 파라미터로 받도록 함. 이후 상속할 super class를 :과 명칭을 작성하면 상속할 수 있음. 물론 super class의 속성을 미치 정한 이후에 상속할 수도 있음.
클래스의 상속을 클래스를 더 구조적으로 다룰 수 있게 해주는 장점이 있으나, 지난친 상속은 코드를 더 어렵게 만든다는 점도 조심해야 함.
'Android > Kotlin' 카테고리의 다른 글
| [Kotlin] 클래스의 다형성 (0) | 2021.12.07 |
|---|---|
| [kotlin] 변수, 함수, 클래스의 접근범위와 접근제한자 (0) | 2021.12.06 |
| [Kotlin] Kotlin의 기본 프로젝트 구조 (0) | 2021.12.06 |
| [Kotlin] 오버라이딩과 추상화 (0) | 2021.12.06 |
| [Kotlin] 클래스의 생성자 (0) | 2021.12.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 프로그래머스
- 생성자
- Python
- 앱개발
- Class
- 안드로이드
- 알고리즘
- 싸피5기
- 백준 #숨박꼭질3 #다익스트라 #알고리즘 #비전공개발자 #풀스택 #웹개발 #앱개발 #안드로이드 #python
- 백준알고리즘 #BFS #델타이동 #알고리즘풀이 #개발 #안전영역 #풀스택개발자가되고싶습니다. #노력할래요 # 꾸준히 # 화이팅! #비전공개발자
- 중첩클래스와 내부클래스
- 비전공개발자
- 카카오
- DP
- 프로젝트구조
- 추가합격후기
- 기본생성자
- 코틀린
- Java #객체지향 #상속 #생성자 #개념 #비전공개발자 #FullStack을 #향해
- Kotlin
- Programmers #알고리즘 #Python #KAKAOINTERNSHIP #비전공개발자 #불량사용자
- 구간 합 구하기 4
- 일반파라미터
- 안드로이드 #안드로이드스튜디오 #Kotlin #앱개발 #안드로이드기초 #비전공개발자 #풀스택개발자 #앱개발자
- 보조생성자
- kotlin문법
- 참조연산자
- 비전공싸피합격
- 백준
- Java
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
글 보관함
