interface InputDevice { //输入设备接口
fun input(event: Any) //输入的方法
}
interface USBInputDevice: InputDevice //user输入设备接口
interface BLEInputDevice: InputDevice //蓝牙输入设备接口
interface OpticalMouse //光电鼠标接口
abstract class USBMouse(val name: String): USBInputDevice, OpticalMouse { //usb鼠标
override fun input(event: Any) {
}
override fun toString(): String {
return name
}
}
class LogitechMouse : USBMouse("罗技鼠标") {
}
class Computer { //电脑类
fun addUSBInputDevice(inputDevice: USBInputDevice) { //插入usb输入设备
println("add usb input device: $inputDevice")
}
fun addBLEInputDevice(inputDevice: BLEInputDevice) { //插入蓝牙输入设备
println("add ble input device: $inputDevice")
}
fun addInputDevice(inputDevice: InputDevice) { //插入输入设备
when (inputDevice) {
is BLEInputDevice -> {
addBLEInputDevice(inputDevice)
}
is USBInputDevice -> {
addUSBInputDevice(inputDevice)
}
else -> {
throw IllegalArgumentException("输入设备类型不支持")
}
}
}
}
fun main(args: Array<String>) {
val computer = Computer() //新建电脑
val mouse = LogitechMouse() //新建罗技鼠标
computer.addInputDevice(mouse) //把鼠标添加到电脑上
}
Kotlin学习笔记(二十五)接口与抽象类
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2016年7月,我第一次参加驴友群的活动,从此便爱上了这里山高天阔的景致,更爱上了这里的温情与豪情。 其实 ,第一...