Kotlin类的抽象类

继承的基类 去 Kotlin类的定义和静态方法和继承 这里看
1.创建Chicken鸡的抽象类 定义抽象方法callOut

package com.kotlin.study

/**
 * 继承Animal 的name 和sex  不用 var 和val修饰 新增voice需要增加var 或val
 *
 */
abstract class Chicken(name: String, sex: Int, var voice: String) : Animal(name, sex) {

    //抽象方法必须在子类里面重写,所以可以省略open因为abstract默认就是open类型的
    //open abstract fun callOut(times:Int):String
    val numberArray: Array<String> = arrayOf("1","2","3","4","5")
    abstract fun callOut(times: Int): String
}

2.Cock公鸡类实现自己的callOut方法

package com.kotlin.study

class Cock(name: String, sex: Int, voice: String) : Chicken(name, sex, voice) {

    override fun callOut(times: Int): String {

        var count = when {
            times <= 0 -> 0
            times >= 5 -> 2
            else -> 1
        }
        return "$sexName$name${voice}叫了${numberArray[count]}声"
    }
}

3.测试调用

package com.kotlin.study

fun main() {
    var kk= Cock("坤坤",Animal.FEMALE,"咯咯咯")
    println(kk.callOut(2))

}

//打印:
//初始化init Animal类 
//坤坤:母
//母坤坤咯咯咯叫了2声
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容