🔌 인터페이스
📖 인터페이스란?
**인터페이스(Interface)**는 클래스가 구현해야 할 기능의 명세입니다. "무엇을 할 수 있는가"를 정의합니다.
💡 기본 인터페이스
인터페이스 정의
interface Drawable {
fun draw() // 추상 메서드
}
class Circle : Drawable {
override fun draw() {
println("원을 그립니다")
}
}
class Rectangle : Drawable {
override fun draw() {
println("사각형을 그립니다")
}
}
fun main() {
val shapes: List<Drawable> = listOf(Circle(), Rectangle())
for (shape in shapes) {
shape.draw()
}
// 원을 그립니다
// 사각형을 그립니다
}
프로퍼티
interface Named {
val name: String // 추상 프로퍼티
}
class Person(override val name: String) : Named
class Company(override val name: String) : Named
fun main() {
val person = Person("홍길동")
val company = Company("ABC회사")
println(person.name) // 홍길동
println(company.name) // ABC회사
}