경험의 기록

자바의 제네릭과 동일하며

인자로 사용되는 타입에 따라 구체화된다.

 

fun main() {
    Generic(Animal()).start()
    Generic(dog()).start()
    Generic(cat()).start()
}

open class Animal{
    open fun eat(){
        println("동물이 음식을 먹습니다.")
    }
}

class cat : Animal(){
    override fun eat(){
        println("고양이가 음식을 먹습니다.")
    }
}

class dog : Animal(){
    override fun eat(){
        println("강아지가 음식을 먹습니다.")
    }
}

class Generic<T : Animal> (val t : T){
    fun start(){
        t.eat()
    }
}

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading