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)
    }
  • 相关阅读:
    JSP_EL使用
    Ajax乱码问题
    Myeclipse安装svn插件(link方式)
    JAVA多线程通信
    Java序列化与反序列化(Serializable)
    Java 字符流实现文件读写操作(FileReader-FileWriter)
    Java 字节流实现文件读写操作(InputStream-OutputStream)
    JAVA环境变量配置
    Flex设置外部浏览器
    J2EE5(Servlet2.5)对EL表达式的支持
  • 原文地址:https://www.cnblogs.com/loaderman/p/10126211.html
Copyright © 2011-2022 走看看