Files
excel-download/kotlin-basic/src/main/kotlin/11_Interface.kt
2023-02-28 01:22:39 +09:00

52 lines
996 B
Kotlin

class Product(val name: String, val price: Int)
interface Wheel {
fun roll()
}
interface Cart: Wheel {
val coin: Int
val weight: String
get() = "20kg" // backing field 사용 불가
fun add(product: Product)
fun rent() {
if (coin > 0) {
println("카트를 대여합니다.")
}
}
override fun roll() {
println("카트가 굴러갑니다.")
}
}
interface Order {
fun add(product: Product) {
println("${product.name} 주문이 완료되었습니다.")
}
}
class MyCart(override val coin: Int) : Cart, Order {
override fun add(product: Product) {
if (coin <= 0) println("코인을 넣어주세요.")
else println("${product.name}이(가) 카트에 추가됐습니다.")
// 다중 상속
super<Order>.add(product)
}
}
fun main() {
val cart = MyCart(coin = 100)
cart.rent()
cart.roll()
cart.add(Product(name = "장난감", price = 1000))
}