Kotlin/ 인터페이스
인터페이스
- 어떤 Object에 대한 명세
- 간단히 인터페이스는 약속이라고 생각하자!
- 인터페이스는 생성자가 없다.
- 인터페이스를 구현(implement)하는 클래스는 인터페이스 안에 있는 기능을 반드시 모두 구현해야한다.
상속과 다른 점
- 상속은 조상을 찾아가는 느낌
- 인터페이스는 종의 특징
예시1
- Person에는 eat과 sleep기능이 있다.
- Student와 Teacher는 Person을 구현한다.
- 그런데 Student와 Teacher의 eat기능과 sleep기능에 있어서 큰 차이가 있는 경우
interface Person{
fun eat()
fun sleep()
}
class Student : Person{
override fun eat() {
println("학생식당에서 먹는다.")
}
override fun sleep() {
println("부모님과 함께 잔다.")
}
}
class Teacher : Person{
override fun eat() {
println("교사식당에서 먹는다.")
}
override fun sleep() {
println("혼자 잔다.")
}
예시2
- 예시1처럼 Person에는 eat과 sleep이 있고, Student와 Teacher는 Person을 구현한다.
- 그런데 협업 때문에 interface를 사용해야하지만, Student와 Teacher의 eat,sleep 기능이 별반 다르지 않은 경우
-> 인터페이스에서 기능을 구현해줄 수 있다.
- 인터페이스에 구현이 있는 함수는 그 인터페이스를 구현하는 클래스에서 해당 함수를 구현해줄 필요가 없다.
interface Person{
fun eat(){
println("먹는다.")
}
fun sleep(){
println("잔다.")
}
}
class Student : Person{
}
class Teacher : Person{
}
abstract 키워드
- 인터페이스 안에있는 함수를 그 인터페이스를 구현하는 클래스에서 무조건 구현을 해줘야한다고 명시해주는 키워드
- 예시
interface Person{
fun eat(){
println("먹는다.")
}
fun sleep(){
println("잔다.")
}
abstract fun study()
}
class Student : Person{
override fun study(){
}
}
class Teacher : Person{
override fun study(){
}
}
Author And Source
이 문제에 관하여(Kotlin/ 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@yellowsummer/Kotlin-인터페이스
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
interface Person{
fun eat()
fun sleep()
}
class Student : Person{
override fun eat() {
println("학생식당에서 먹는다.")
}
override fun sleep() {
println("부모님과 함께 잔다.")
}
}
class Teacher : Person{
override fun eat() {
println("교사식당에서 먹는다.")
}
override fun sleep() {
println("혼자 잔다.")
}
-> 인터페이스에서 기능을 구현해줄 수 있다.
interface Person{
fun eat(){
println("먹는다.")
}
fun sleep(){
println("잔다.")
}
}
class Student : Person{
}
class Teacher : Person{
}
interface Person{
fun eat(){
println("먹는다.")
}
fun sleep(){
println("잔다.")
}
abstract fun study()
}
class Student : Person{
override fun study(){
}
}
class Teacher : Person{
override fun study(){
}
}
Author And Source
이 문제에 관하여(Kotlin/ 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yellowsummer/Kotlin-인터페이스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)