Kotlin observa herança, classe abstrata, interface (6)
Tipo de dados de nota Kotlin (1) String de nota Kotlin (2) Operador de nota Kotlin (3) Função de nota Kotlin (4) Nota Kotlin orientada a objetos (5)
Diretório de artigos
1. Herança
1. Herança do construtor
O construtor primário da subclasse herda o construtor primário da classe pai, então o construtor secundário da subclasse não pode chamar diretamente o construtor da classe pai. O construtor primário da subclasse
chama o construtor primário da classe pai:
/**
* 定义父类
*/
open class Peson(val name: String,
val age: Int,
val birthDate: Date){
// 声明父类的主构造函数
//次构造函数
constructor(name: String, age: Int) : this(name, age, Date())
override fun toString(): String {
return ("Person [name=$name, age=$age, birthDate=$birthDate]")
}
}
class Student(name: String, age: Int, birthDate: Date,private var sex:Boolean) : Peson(name, age, birthDate) {
constructor(name: String, age: Int, birthDate: Date):this(name,age,birthDate,false)
}
O construtor da subclasse chama o construtor da superclasse
class Sudent1:Peson{
var sex:Boolean=false
constructor(name: String, age: Int, birthDate: Date,sex:Boolean):super(name,age,birthDate){
this.sex=sex
}
}
2. Substitua as propriedades da classe pai
fun main(args: Array<String>) {
var subClass=SubClass()
println(subClass.x)
}
open class ParentClass {
// x成员属性
open var x = 10
}
class SubClass : ParentClass(){
override var x=20
}
3. Reescrever funções de membro
fun main(args: Array<String>) {
var subClass=SubClass()
subClass.setValue(30)
println(subClass.x)
}
open class ParentClass {
// x成员属性
open var x = 10
open fun setValue(x:Int){
this.x=x*2
}
}
class SubClass : ParentClass(){
override var x=20
override fun setValue(x: Int) {
super.setValue(x)
this.x=x*3
}
}
2. Aula abstrata
Uma classe abstrata contém propriedades abstratas e métodos abstratos, bem como propriedades concretas e métodos concretos
abstract class Figure{
abstract val name:String // 抽象属性
abstract fun onDraw() // 抽象方法
var cName:String="图形" //具体属性
//具体方法
fun cOnDraw(){
println("绘制图形")
}
}
3. Interface
A declaração de uma interface é semelhante à de uma classe abstrata
interface FigureInterFace{
val name:String // 抽象属性
fun onDraw() // 抽象方法
//定义常量
val cName:String
get() = "初始化"
//具体方法
fun cOnDraw(){
println("绘制图形")
}
}