美文网首页
Kotlin抽象类与接口

Kotlin抽象类与接口

作者: ZoranLee | 来源:发表于2021-11-19 16:59 被阅读0次

抽象类表示“is-a”的关系,而接口所代表的是“has-a”的关系。

抽象类与抽象成员

抽象是相对于具象而言的。

image.png
abstract class Shape {
    abstract var width: Double
    abstract var height: Double
    abstract fun area(): Double
}

class Rectangle(override var width: Double, override var height: Double) : Shape() {

    private val name: String? = null

    override fun area(): Double {
        return PI * width * height
    }

    companion object {
        const val PI = 3.14
    }
}

  • 能够继承父类的public和protected成员变量;
  • 不能继承父类的private成员变量;
  • 对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能继承;
  • 对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中的同名成员变量,需要使用super关键字进行引用

接口

接口是一种比抽象类更加抽象的“类”
接口本身代表的是一种“类型”的概念。
接口是用来建立类与类之间的协议

Kotlin与Java一样,继承只能存在一个父类(单继承)


interface ProjectPrivate {
    val name: String
    val owner: String
    fun save(project: Project)

    fun print() {
//        println()
    }
}

class ProjectPrivateImpl(override val name: String, override val owner: String) : ProjectPrivate {
    override fun save(project: Project) {

    }
}

相关文章

  • Kotlin 类2 - 抽象类与接口

    Kotlin 类2 - 抽象类与接口 1. Kotlin 类、抽象类、接口的规则: 「单继承多现实」即一个类只可以...

  • Kotlin---接口与继承

    接口与抽象类的区别 同样在Kotlin中也有接口的概念,与Java不同的是,Kotlin中的接口可以定义变量,但是...

  • Kotlin接口与SAM函数,以及可见性修饰符

    一、Kotlin接口 Kotlin 的接口可以既包含抽象⽅法的声明也包含实现。与抽象类不同的是,接口⽆法保存状态。...

  • 抽象类和接口

    接口:代表的是事物的能力抽象类:反映的是事物的本质 kotlin中的接口 kotlin中的抽象类 kotlin中实...

  • kotlin接口

    借鉴Kotlin中文站 接口 Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保...

  • About Kotlin-Kotlin中的类2

    About Kotlin(2) 继续昨天的部分。介绍Kotlin中的类。 Kotlin中的类 抽象类和接口 抽象类...

  • 【第7篇】Kotlin接口的详解

    1、接口 Kotlin 的接口与 Java 8 类似,既包含抽象方法的声明,也包含实现。与抽象类不同的是,接口无法...

  • Kotlin——面向对象(4)

    1、面向对象-抽象类与接口 1)什么是接口接口,直观理解就是一种约定kotlin的接口与Objcet-C的Prot...

  • Kotlin基础(二)——面向对象

    抽象类和接口 接口 直观理解就是一种约定,Kotlin的接口与Objective-c的Proticol比较类似 不...

  • kotlin中的面相对象

    目录 抽象类与接口 多态和接口代理 kotlin中接口函数冲突问题 类及其成员的可见性 object(单例模式) ...

网友评论

      本文标题:Kotlin抽象类与接口

      本文链接:https://www.haomeiwen.com/subject/vtadtrtx.html