클래스 상속가능한 키워드인 open과 마찬가지로 함수에서도 오버라이드 가능하도록
open 키워드를 붙여준 함수에 한해서 override 키워드를 붙여서 오버라이드(함수 재정의)를
할수있다.
사용예시)
open class Aclass(var name:String, var age:Int, var type:String)
{
open fun introduce(){
println("저는 ${type} ${name}이고, ${age}살 입니다.")
}
}
class Dog (name:String, age:Int) : Aclass(name,age,"개")
{
override fun introduce(){
println("Dog 클래스에서 오버라이딩한 함수")
}
}
fun main(){
var a = Aclass("별이",5,"개")
var b = Dog("별이",5)
a.introduce()
b.introduce()
}
추상화)
추상화할 클래스 나 함수에 abstract를 키워드를 붙여준다
사용예시)
abstract class Animal{
abstract fun eat()
fun sniff() {
println("킁킁")
}
}
class Rabbit : Animal(){
override fun eat(){
println("당근을 먹습니다")
}
}
fun main(){
var r = Rabbit()
r.eat()
r.sniff()
}
인터페이스)
구현부가 있는 함수 -> open 함수로 간주
구현부가 없는 함수 -> abstract 함수로 간주
사용예시)
interface Runner {
fun run()
}
interface Eater {
fun eat() {
println("음식을 먹습니다")
}
}
class Dog : Runner, Eater {
override fun run() {
println ("우나나나 뜁니다")
}
}
fun main() {
var d = Dog()
d.run()
d.eat()
}
'개발지식창고 > Android_Kotlin' 카테고리의 다른 글
코틀린 기본문법(10. 고차함수와 람다함수) (0) | 2022.04.07 |
---|---|
코틀린 기본문법(9. 코틀린 프로젝트 구조) (0) | 2022.04.07 |
코틀린 기본문법(7. 클래스-상속) (0) | 2022.04.07 |
코틀린 기본문법(6. 흐름제어와 논리연산자) (0) | 2022.04.07 |
코틀린 기본문법(5. 반복문과 증감연산자) (0) | 2022.04.07 |