KDY

InterFace란? 본문

Kotlin

InterFace란?

daeyeong 2022. 4. 26. 11:50

1. InterFace의 역할

  • 인터페이스는 객체를 어떻게 구성해야 하는지 정리한 설계도입니다.
  • 인터페이스는 객체의 교환성(또는 다형성)을 높여줍니다.
  • 인터페이스 변수에 인터페이스가 구현된 서로 다른 구현 객체를 할당해서 사용이 가능합니다.
  • 구현 객체를 직접 몰라도 인터페이스 메서드만 알아도 객체 호출이 가능하게 합니다.
  • 객체가 인터페이스를 사용하면, 인터페이스 메서드를 반드시 구현해야 하는 제약을 합니다.
 인터페이스의 약속!
  • 생정자가 없다 -> 인스턴스화 시킬수 없다 -> 설명서가 아니다.
  • 지침서 -> Interface를 사용하고 싶으면 반드시 인터페이스 안의 기능을 모두 구현해야 합니다.
interface Person{
    fun eat()
    fun sleep()
}

Class Student : Person{
    override fun eat(){
    
    }
    
    override fun sleep(){
    
    }
}

Class OfficeWorker : Person{
    override fun eat(){
    
    }
    
    override fun sleep(){
    
    }
}

fun main(args : Array<String>){
   val student : Student = Student()
   
   student.eat()
   student.sleep()
}

위와 같이 Person이라는 Interface에 eat 함수와 sleep함수를 만들었으면 

Person Interface를 사용하는 Class에서는 반드시 eat 함수와 sleep함수를 생성해야 합니다.

또한 Interface를 사용하여 구현한 함수안에 아무런 구현을 안했어도 main에서 함수를 사용할 수 있습니다.

 

이걸 협업과 생각하면 Student라는 클래스에 꼭들어가야 하는 함수가 있다면 Interface를 내가 만들고

Interface안의 함수에 들어가야 하는 내용을 다른분이 작성하는 방식으로 사용할수 있습니다.

 

개인적인 생각 : 클래스 상속은 같은 함수가 있지만 조금 다르다면 상속이 유용하고 함수명은 같지만 안의 내용이 많이 다르다면 Interface를 사용하는게 좋은것 같습니다.

'Kotlin' 카테고리의 다른 글

by lazy 와 lateinit의 차이  (0) 2022.11.01
Kotlin IntArray  (0) 2022.04.11