-
[Kotlin] AbstractKotlin 2022. 9. 14. 15:43
package days02 fun main(){ // val obj1 = Super1() // 추상클래스만의 객체생성은 불가능 val obj1 = Sub1() obj1.method1() obj1.method2() println() val obj2 = Sub2() obj2.method1() obj2.method2() println() testFuntion(obj1) testFuntion(obj2) } // 부모클래스의 참조변수가 멤버변수로 있기때문에, 그 자식 클래스의 객체를 전달인수로 전달 가능 fun testFun1(obj1:Super1){ obj1.method1() obj1.method2() } // 추상클래스: 상속을 위한 클래스. 멤버메서드의 override에 강제성을 부여하기위해 사용 open abstract class Super1{ // 재정의(override)의 강제성이 있는 메서드와 없는 메서드를 동시 사용이 가능 fun method1(){ println("Super1의 method1 입니다") } open abstract fun method2() // 재정의(override)강제성이 부여된 추상메서드 } class Sub1:Super1(){ override fun method2() { println("Sub1의 method2 입니다") } } class Sub2:Super1(){ override fun method2() { println("Sub2의 method2 입니다") } }
'Kotlin' 카테고리의 다른 글
[Kotlin] Companion (0) 2022.09.14 [Kotlin] Interface (0) 2022.09.14 [Kotlin] this, super (0) 2022.09.14 [Kotlin] Any Class (0) 2022.09.14 [Kotlin] Override (0) 2022.09.14