当前位置: 首页 > ai >正文

Kotlin 中的继承/实现

1 继承

1.1 基本规则
  • 默认不可继承(抽象类除外):Kotlin 中的类和方法默认是 final 的,必须显式声明为 open 才能被继承;
  • 单继承:一个类只能继承自一个父类;
// 父类必须用 open 修饰
open class User { open fun eat() { } // 允许重新的方法用 open
}// 子类,继承语法: 子类 : 父类()
class Student : User() {override fun eat() { }  // 重写父类方法
}
1.2 主构造函数继承

父类参数直接在子类声明中传递:

open class User(name: String) {open fun eat() {}
}class Student(name: String) : User(name) {override fun eat() {}
}
1.3 次构造函数继承

super 调用父类构造:

class Student : User {constructor(name: String) : super(name)
}

2 接口实现

基本规则:

  • 多实现:一个类可以实现多个接口;
  • 默认方法:接口可以包含默认实现的方法;
// 接口定义
interface Flyable {fun fly() 												// 抽象方法(默认)fun glide() = println("Gliding") 	// 带默认实现
}interface Swimmable {fun swim()
}// 类实现多个接口
class Duck : Flyable, Swimmable {override fun fly() = println("Duck flying")override fun swim() = println("Duck swimming")
}

3 抽象类和抽象方法

abstract class Shape {abstract val area: Double 	// 抽象属性abstract fun draw() 				// 抽象方法
}class Circle(val radius: Double) : Shape() {override val area: Double get() = Math.PI * radius * radiusoverride fun draw() = println("Drawing a circle")
}
http://www.xdnf.cn/news/13673.html

相关文章:

  • 2025-06-13【api】阿里百炼api调用方法
  • HarmonysOS 模块化设计理念
  • Jsoup解析商品详情时,有哪些常见的标签和属性?
  • 网络安全之CTF专题赛RE题解
  • Python训练营打卡Day49
  • 在QtCreator中使用GitHubCopilot
  • UML和模式应用(软件分析设计与建模期末复习)
  • 华为:eSight网管平台使用snmp纳管交换机
  • 利用Snowflake与SNP Glue揭示数据集成新潜力
  • Ozon欧亚仓网战略解析与中国卖家机遇
  • GUI丝滑教程-python tinker
  • Middleware
  • 力扣HOT100之技巧:287. 寻找重复数
  • 安装配置以太链钱包工具
  • 好用的培训教务管理系统哪个用的最多?
  • 68元开启智能硬件新纪元——明远智睿SSD2351开发板引领创新浪潮
  • java_api路径_@Parameter与@RequestParam区别
  • 【hadoop】疫情离线分析案例
  • 关于使用EasyExcel、 Vue3实现导入导出功能
  • 系统功耗管理
  • 25年春招:米哈游运维开发一面总结
  • Java反射机制深度解析与实战应用
  • C# net8生成excel,并设置列规则导出文件
  • 【Linux】Linux基础I/O
  • 织梦dedecms内容页调用seotitle标题的写法
  • Python训练营---DAY52
  • day01 ——Java基础入门
  • 135. Candy
  • C# 界面检测显示器移除并在可用显示器上显示
  • 关键领域软件测试新范式:如何在安全合规前提下提升效率?