zoukankan      html  css  js  c++  java
  • kotlin 类的继承

    与Java不同,kotlin 使用冒号,而Java 中使用extends, 注意冒号后面需要调用夫类的构造器。属于单继承,使用open 关键字允许继承class

    package loaderman.demo
    
     open class Person (name:String){
    
       protected var mName:String =name
        fun getName():String{
            return mName
        }
    }
    package loaderman.demo
    
    class son :Person("enen"){
        fun getN():String{
            return mName
        }
    }
    package loaderman
    
    import loaderman.demo.son
    
    
    fun main(arg: Array<String>) {
    
        val n = son().getN()
        println(n)
    }

       方法重写

    类默认是不可继承的,连方法默认也是不可重写的,如果需要重写方法,就需要在父类中相应的方法上加伤open关键字。而且在子类重写的方法前加override关键字

    package loaderman.demo
    
     open class Person (name:String){
    
       protected var mName:String =name
        open fun getName():String{
            return mName
        }
    }
    package loaderman.demo
    
    class son :Person("enen"){
        override fun getName():String{
            return mName
        }
    }
    package loaderman
    
    import loaderman.demo.son
    
    
    fun main(arg: Array<String>) {
    
        val n = son().getName()
        println(n)
    }

    重写属性

    package loaderman.demo
    
    open class Person {
    
        open var mName: String = "Person name"
        open fun getName(): String {
            println(mName)
            return mName
        }
    }
    package loaderman.demo
    
    open class son :Person(){
        override var mName :String = "son name"
        get() {
            println("获取属性")
            return field
        }
        set(value) {
            field=value
            println("设置属性")
        }
        override fun getName():String{
            return mName
        }
    
    
    }
    package loaderman
    
    import loaderman.demo.son
    
    
    fun main(arg: Array<String>) {
    
        val n = son()
        n.mName="hah"
        println(n.mName)
    }
  • 相关阅读:
    java如何计算对象的大小
    java多线程实现主线程等待子线程执行完问题
    再次理解多线程线程安全问题(理解java内存模型后)
    关于局部变量在循环里的生存法则
    【CSS3】transform-origin原点旋转
    面向对象编程(本章小结)
    引入在线编程和编译站点
    关于获取素数 一个小程序
    C++ I/O
    HDU2571
  • 原文地址:https://www.cnblogs.com/loaderman/p/10126211.html
Copyright © 2011-2022 走看看