kotlin入门-面向对象的基本概念

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) {
    var computer = Computer()
    var mouse = UsbMouse("雷柏鼠标")
    computer.addInputDevice(mouse)
}
输出:插入Usb设备:雷柏鼠标

你可能感兴趣的:(kotlin)