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)
    }
  • 相关阅读:
    解决 “invalid resource directory name”, resource “crunch”
    Unable to resolve target 'android-19'
    android SDK安装容易出错的原因
    Eclipse启动认定SDK地址,出现Error executing aapt
    解决Android SDK Manager更新下载速度慢
    Vue框架
    JSON
    Django之组件--cookie与session
    Django之组件--中间件
    Django之组件--forms
  • 原文地址:https://www.cnblogs.com/loaderman/p/10126211.html
Copyright © 2011-2022 走看看