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

数据类与封装类

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

相关推荐
btown16 小时前
Kotlin 版 MyBatis-Plus 查询优雅解决方案
kotlin
小二·19 小时前
车载数字座舱实战:用魔珐星云打造下一代智能驾乘助手(附 Android/Kotlin 完整代码)
开发语言·kotlin
我命由我1234520 小时前
Android 开发问题:java.lang.NoSuchMethodError:No virtual method readAllBytes()
android·java·java-ee·kotlin·android studio·android-studio·android runtime
Kapaseker1 天前
你是不是还没用过 select?实战 Kotlin select
android·kotlin
plainGeekDev2 天前
synchronized → Coroutines
android·java·kotlin
唐青枫2 天前
Java Gradle 实战指南:从 Wrapper、Kotlin DSL 到 Spring Boot 多模块构建
java·kotlin·gradle
帅次3 天前
Kotlin Flow 与 StateFlow:UI 单向数据流基础
开发语言·ui·kotlin·stateflow·onlifecycle
Kapaseker3 天前
Sequence 一定比 List 快?等等,我们先从基础讲起
android·kotlin
zhangjin11204 天前
Android Studio创建HelloWorld(kotlin版本)
android·kotlin·android studio
怣疯knight4 天前
kotlin安卓应用打包编译卡死的可能原因
android·kotlin