Kotlin抽象类与接口 (1)抽象类

2019-06-03  本文已影响0人  狼性代码人
  • 抽象类概念
  • 抽象类声明和实现

一、抽象类概念

注意:抽象函数和抽象属性只能在抽象类中声明,并且无需对抽象类或抽象成员标注 open 注解。

二、抽象类声明和实现

kotlin 中使用关键字 abstract 声明抽象类,及抽象成员;并且无需对抽象类或抽象成员标注 open 注解。

abstract class BaseAbs

abstract class Figure : BaseAbs() { // 1️⃣
    abstract fun onDraw()       // 抽象函数,无函数体 2️⃣
    abstract val name: String   // 抽象属性,无初始值,无getter和setter访问器 3️⃣

    val cname: String = "几何图形"  // 具体属性 4️⃣

    fun display() = println(name)  // 具体函数 5️⃣
}

注意:如果一个成员函数或属性被声明为抽象的,那么这个类也必须声明为抽象的。而且一个抽象类中,可以有 0 - N 个抽象函数或属性,以及 0 - N 个具体函数或属性。

// Figure具体实现类
class Ellipse: Figure() {

    override val name: String
        get() = "椭圆形"

    override fun onDraw() {
        println("绘制椭圆形...")
    }
}

class Triangle(override val name: String) : Figure() {

    override fun onDraw() {
        println("绘制三角形...")
    }
}

class Rectangle: Figure() {

    override val name: String = "矩形"

    override fun onDraw() {
        println("绘制矩形...")
    }
}
上一篇 下一篇

猜你喜欢

热点阅读