美文网首页Kotlin
Kotlin 零基础学习 封装、继承、抽象、多态

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

作者: __素颜__ | 来源:发表于2019-01-16 17:42 被阅读44次

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

    一.封装

    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 零基础学习 封装、继承、抽象、多态

        本文链接:https://www.haomeiwen.com/subject/trwmdqtx.html