Kotlin
[Kotlin] Generic
98kg
2024. 3. 15. 16:18
Generic
클래스나 함수에 사용하는 자료형을 외부에서 지정할 수 있는 기능
함수나 클래스를 선언할 때 고정적인 자료형 대신 실제 자료형으로 대체되는
타입 파라미터를 받아 사용하는 방법
fun <T> genericFunc(param:T):T
class GenericClass<T>(var pref:T)
<T> 이 부분에서 특정 자료형을 할당하면 제네릭을 사용하는 모든 코드는 할당받은 자료형으로 대체되어 컴파일 된다
fun main() {
UsingGeneric(A()).doShouting()
UsingGeneric(B()).doShouting()
UsingGeneric(C()).doShouting()
doSouting(B())
}
fun <T:A> doSouting(t:T){
t.shout()
}
open class A{
open fun shout(){
println("A가 소리친다")
}
}
open class B : A(){
override fun shout(){
println("B가 소리친다")
}
}
open class C:A(){
override fun shout(){
println("C가 소리친다")
}
}
class UsingGeneric<T:A> (val t:T){
fun doShouting(){
t.shout()
}
}