- 추상클래스 : 상속을 위한 클래스. 멤버메서드의 override에 강제성을 부여하기위해 사용
- 재정의(override) 의 강제성이 있는 메서드와 없는 메서드를 동시 사용이 가능합니다.
open abstract class Super1{
open fun method1(){
println("Super1의 method1 입니다")
}
open abstract fun method2() // 재정의(override) 강제성이 부여된 추상메서드
}
->추상 클래스 Super1 생성
class Sub1:Super1(){
override fun method2() {
println("Sub1의 method2 입니다")
}
}
class Sub2:Super1(){
override fun method2() {
println("Sub2의 method2 입니다")
}
}
-> Super1 추상 클래스를 상속하고 추상 메서드를 오버라이딩한 Sub 클래스 2개 생성
<Main>
val obj1 = Sub1()
obj1.method1()
obj1.method2()
println("----------------------------------------------")
val obj2 = Sub2()
obj2.method1()
obj2.method2()
<함수 생성>
fun testFuntion(obj1:Super1){
obj1.method1()
obj1.method2()
}
<Main>
testFuntion(obj1)
testFuntion(obj2)