1.本质上就是解决如何使用程序描述世界的问题
2.讨论如何把实际存在的东西抽象成程序的类和对象
3.一种程序设计的思路、思想、方法
/**
* 定义一个接口 可以传入任何事件
*/
interface InputDevice {
fun input(event: Any)
}
/**
* 定一个Usb设备继承InputDevice
*/
interface UsbDevice : InputDevice
/**
* 定义一个蓝牙设备继承InputDevice
*/
interface BlueToolsDevice : InputDevice
/**
* 定义一个计算机类
*/
class Computer {
fun addUsbDevice(inputDevice: UsbDevice) {
println("插入Usb设备:${inputDevice}")
}
fun addBlueToolsDevice(inputDevice: BlueToolsDevice) {
println("插入蓝牙设备:${inputDevice}")
}
fun addInputDevice(inputDevice: InputDevice) {
when (inputDevice) {
is BlueToolsDevice -> addBlueToolsDevice(inputDevice)
is UsbDevice -> addUsbDevice(inputDevice)
else -> {
println("未知的设备")
}
}
}
}
/**
* 定一个USB鼠标,并且定义对象的toString方法
*/
class UsbMouse(var name: String) : UsbDevice {
override fun input(event: Any) {
}
override fun toString(): String {
return name
}
}
fun main(args: Array<String>) {
var computer = Computer()
var mouse = UsbMouse("雷柏鼠标")
computer.addInputDevice(mouse)
}
输出:插入Usb设备:雷柏鼠标