Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스타일보험
- 시큐어코딩
- kotlin
- 안드로이드
- java#왕초보
- SQL
- 코틀린
- Spinner
- 숫자
- sub query
- Android
- React
- 오버라이드
- java
- 게시판
- 쿠키
- webpack
- 답글
- 미니게임
- 함수
- 버전일치
- parcel
- degit
- 왕초보
- 상속
- FIle
- 스프링
- Spring
- snowpack
- git
Archives
- Today
- Total
YSHUSH
상속 본문
예제1
Base class
open class Base(var firstname:String = "코니", val lastName:String = "김", var age:Int){
/*
class Base{
var firstname:String
val lastName:String
var age:Int
constructor(firstname:String, lastName:String, age:Int){
this.firstname = firstname
this.lastName = lastName
this.age = age
}
*/
open val fullName:String
get() = "$firstname $lastName"
}
주석처리된 부분이 축약되어 Base class의 생성자로 들어가면 이런 형태로 된다.
Child class가 상속을 받기 때문에 앞에 open을 붙여주는 것 잊지말도록 하자.
Base class를 상속받는 Child class
class Child(firstname:String, lastName:String, age:Int, var address:String) : Base(firstname, lastName, age){
override val fullName: String
get() = "$firstname $age $address"
}
코틀린에서 특이한 점은 상속시 클래스건 메소드건 상속받는 개체 앞에다 오버라이드를 붙여줘야 한다,
그리고 상속을 주는 개체 앞에 open을 붙여준다.
상속 적는 단계
먼저 이렇게 적어주고
class Child : Base(firstname, lastName, age)
이렇게 추가해준다
class Child(firstname:String, lastName:String, age:Int) : Base(firstname, lastName, age)
함수호출부
fun main(args: Array<String>) {
val base = Base("코돌", "양", 24)
base.firstname = "영춘"
println(base.fullName) // get
val child = Child("코스", "임", 38, "서울시")
println(child.lastName)
println(child.fullName)
}
예제2
Bird class
open class Bird(var name:String, var wing:Int, var color:String){
fun fly() = println("Fly wing: $wing")
override fun toString(): String {
return "Bird(name='$name', wing=$wing, color='$color')"
}
open fun allData() = print("$name $wing $color ")
}
Lark class
class Lark(name:String, wing:Int, color:String):Bird(name, wing, color){
fun singHitOne() = println("짹짹!")
}
Parrot class
class Parrot:Bird{
var vol:Int = 0
constructor(name:String, wing:Int, color:String, vol:Int):super(name, wing, color) {
this.vol = vol
}
override fun toString(): String {
return super.toString() + "Parrot(vol=$vol)"
}
override fun allData(){
super.allData()
println("$vol")
}
}
super → 상속받은 클래스의 데이터를 가져온다.
함수호출부
fun main(args: Array<String>) {
val parrot = Parrot("나이팅게일", 2, "blue", 8)
println(parrot.toString())
println(parrot.allData())
}
오버라이드 연습
// 오버라이드
class Calc{
fun add(x:Int, y:Int):Int = x + y
fun add(x:Double, y:Double):Double = x + y
fun add(x:Int, y:Int, z:Int):Int = x + y + z
fun add(x:Double, y:Double, z:Double):Double = x + y + z
}
fun main(args: Array<String>) {
val cal = Calc()
println(cal.add(3, 4))
println(cal.add(3.12, 4.34))
println(cal.add(3, 4, 5))
println(cal.add(3.12, 4.34, 5.67))
}
'Coding > Kotlin' 카테고리의 다른 글
Interface (0) | 2022.01.27 |
---|---|
추상클래스(abstract class) (0) | 2022.01.27 |
가위바위보 게임 (0) | 2022.01.26 |
Lazy (0) | 2022.01.26 |
Getter & Setter (0) | 2022.01.26 |