Kotlin 零基础学习 封装、继承、抽象、多态

封装:就是隐藏内部实现的细节
继承:一个对象直接使用另一个对象的属性和方法
抽象:不实现具体方法交由子类实现
多态:同种功能不同的表现形态

一.封装

class Girl(var eyes: Int, var mouth: Int) {
    fun smile() {
        println("姑娘会笑");
    }

    fun cry() {
        println("姑娘会哭");
    }

    fun crazy() {
        println("姑娘会作妖");
    }
    private fun eat(){
        println("姑娘会吃饭");
    }
}

类里面的eat方法被设置成了私有外部无法调用,隐藏了实现的细节

二.继承

open class father{
    var value:String="性格内向";
    open  fun action(){
        println("公共场合大声说话")
    }
}

class son:father(){
    override fun action() {
        super.action()
        println("儿子很乖")
    }
}

Kotlin的继承写法和java不一样
1.kotlin继承是“:类名()”,而java使用“ extends”关键字继承。
2.父类能被继承必须用open修饰,java则不用。
3.父类的方法能被重写必须用open修饰,java则不用。

三.抽象

abstract class Human(var name: String) {
    abstract fun eat()
}

class Man(var manName: String) : Human(manName) {
    override fun eat() {
        println("男人大口大口的吃饭")
    }
}

class Woman(var womanName: String) : Human(womanName) {
    override fun eat() {
        println("女人小口小口的吃饭")
    }

}

抽象类Human被Man和Woman所继承,分别重写了eat方法,我们看到抽象类继承和普通类继承有点差别。

1.抽象类被继承不用open修饰
2.抽象方法被重新不用open修饰

可能抽象本来就需要子类去继承和重写,所以就不多此一举用oepn修饰了

四.多态

三中的Human人类被Man 男人和Woman女人分别实现,导致了同样的吃饭的功能却有不同的吃法的表现形态,这就是多态

总结:

面向对象的四大特征 封装、继承、抽象、多态,是不是也很符合生活形态,这就是编程,编程的目的就是通过计算机语言解决生活问题,计算机语言很多种,而Kollin就是其中的一种。

你可能感兴趣的:(Kotlin 零基础学习 封装、继承、抽象、多态)