반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
코틀린 - 상속과 인터페이스 차이 본문
반응형
생성자: 설명서, 인스턴스화 가능하다
인터페이스: 지침서, 생성자가 없다, 인스턴스화 불가능하다
인터페이스는 약속->니가 이것을 구현하면 너도 이 타입이다 라는 약속
생성자가 없다->인스터스화 시킬 수 없다->설명서가 아니다
인터페이스는 지침서->니가 이것을 구현하고 싶다면 반드시 아래 기능을 구현해라
상속이 만들어 낸 아래와 같은 특징이 인터페이스에서도 적용된다
-자식 클래스는 부모 클래스의 타입이다
-부모 클래스는 자식 클래스의 타입이 아니다
상속
open class Person() {
open fun eat() {
}
fun sleep() {
}
}
class Student() : Person() {
override fun eat() {
super.eat()
}
}
class Teacher() : Person() {
}
상속을 써야 할 때:
-자식 클래스에서 반복되는 기능을 부모 클래스에 올려두고 싶을 때
-부모 클래스에 있는 기능을 자식에서 쓰긴 쓰는데 조금 다를 때
인터페이스
fun main(args: Array<String>){
val student_: Student_ = Student_()
student_.eat()
student_.sleep()
}
interface Person_ {
fun eat()
fun sleep()
}
class Student_ : Person_ {
override fun eat() {
}
override fun sleep() {
}
}
class SoccerPlay : Person_ {
override fun eat() {
}
override fun sleep() {
}
}
인터페이스를 써야 할 때:
-부모 클래스에 있는 기능을 자식에서 쓰는데 내용이 많이 다를 때
-다른 개발자와 협업 할 때
예) 만약 여러 명이서 개발을 하는데 나는 main을 했고 누군가가 인터페이스 Person과 클래스 Student, SoccerPlay를 만들었다고 할 때
나는 그 사람이 뭘 만들었는지 알지 않아도 무조건 eat과 sleep은 있다는 점을 안다
갖다 쓰면 된다
상속vs인터페이스
상속은 조상을 찾아가는 느낌 (자식들의 공통된 특징-최소한의 기능을 모은다)
인터페이스는 종의 특징 (사람은 먹고 잔다->먹고 자면 사람이다-이 특징을 만족하면 이 종이다)
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 공부 0731 (유튜브 UI) (0) | 2020.07.31 |
---|---|
Android Drawable Importer 없음/로딩 안 될 때 해결방법 (0) | 2020.07.31 |
안드로이드 공부 0730 (0) | 2020.07.30 |
안드로이드 UI - Viewcomponent (0) | 2020.07.28 |
안드로이드에서 화면을 그리는 방법 (0) | 2020.07.28 |
Comments