Kotlin(4)面向对象

类与对象

一般类

抽象类

嵌套类

是一种静态内部类

内部类

修饰符

属性

构造器

继承

父类val,子类var是可以的,反之不行

接口

函数重写

实现多个接口是,可能会遇到同一方法继承多个实现的问题

interface A {

fun foo() { print("A") } // 已实现

fun bar() // 未实现,没有方法体,是抽象的

}

interface B {

fun foo() { print("B") } // 已实现

fun bar() { print("bar") } // 已实现

}

class C : A {

override fun bar() { print("bar") } // 重写

}

class D : A, B {

override fun foo() {

super<A>.foo()

super<B>.foo()

}

override fun bar() {

super<B>.bar()

}

}

fun main(args: Array<String>) {

val d = D()

d.foo()

d.bar()

}

枚举类

扩展

扩展函数不具备运行时的多态

//父类

open class Shape2

//子类

class Rectangle2:Shape2()

//针对Shape2定义的扩展函数

fun Shape2.getName()="Shape2"

//针对Rectangle2定义的扩展函数

fun Rectangle2.getName() = "Rectangle2"

fun printClassName(s:Shape2){ //静态解析

println(s.getName())

}

fun main(){

printClassName(Rectangle2())

}

打印出来是Shape2

数据类与封装类

密封类是一种特殊的抽象类,不能实例化

相关推荐
zhangphil2 小时前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
小书房3 小时前
Kotlin使用体验及理解1
android·开发语言·kotlin
Kapaseker4 小时前
我想让同事知道我很懂 Compose 怎么办?
android·kotlin
jinanwuhuaguo17 小时前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
jinanwuhuaguo21 小时前
OpenClaw协议霸权——从 MCP 标准到意图封建化的政治经济学(第十八篇)
android·人工智能·kotlin·拓扑学·openclaw
zhangphil1 天前
Android sql查媒体数据封装room Dao构造AndroidViewModel,RecyclerView宫格展示,Kotlin
android·kotlin
jinanwuhuaguo1 天前
反熵共同体——OpenClaw的宇宙热力学本体论(第十七篇)
大数据·人工智能·安全·架构·kotlin·openclaw
pengyu1 天前
【Kotlin 协程修仙录 · 筑基境 · 中阶】 | 身份证与通行证:CoroutineContext 的深度解剖
android·kotlin
夏沫琅琊1 天前
android 短信读取与导出技术
android·kotlin
Kapaseker1 天前
客官,你误会 Compose Strong Skipping 了
android·kotlin