Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- android 오류
- log
- 군대 github
- interface
- 오류
- 군대 개발
- kotlin
- Status Bar
- DataBinding
- Di
- RETROFIT
- android studio cloud
- intArray
- Encoding
- 네트워크
- 디버깅 오류
- Rest
- apollo
- Compose
- text
- REST API
- BindingAdapter
- 군대 깃허브
- 뷰 겹침
- 군대개발
- Log잘림
- multipart
- okhttp
- 군대에서 안드로이드 개발
- Android
Archives
- Today
- Total
KDY
InterFace란? 본문
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 |