Kotlin 继承学习笔记
什么是继承?
继承是面向对象编程(OOP)的基本概念之一。它允许我们创建一个新的类,这个类继承了另一个已经存在的类的所有属性和方法。被继承的类被称为父类或超类,新创建的类被称为子类或派生类。
在Kotlin中,我们使用冒号(:)关键字来指示一个类继承自另一个类。
kotlinCopy Code class Animal {
fun makeSound() {
println("各种动物发出不同的声音")
}
}
class Cat : Animal() {
fun meow() {
println("喵喵喵")
}
}
上面的代码中,Cat
类继承了Animal
类,并添加了自己的方法meow
。
子类的特性
继承使得子类可以继承父类的属性和方法。子类也可以重写父类的方法,以实现自己的逻辑。
调用父类的构造函数
在Kotlin中,如果子类要继承父类的主构造函数,必须在子类的主构造函数中调用父类的构造函数:
kotlinCopy Code open class Animal(val name: String)
class Cat(name: String) : Animal(name) {
fun meow() {
println("${name}喵喵喵")
}
}
上面的代码中,Animal
类有一个参数name的主构造函数,而Cat
类在继承Animal
类时,使用了name
参数来调用父类的构造函数。
重写父类的方法
如果要在子类中重写父类的方法,需要在方法前面加上override关键字。同时,Kotlin中的方法默认是不可覆盖的,如果需要允许方法被覆盖,需要在方法前面加上open关键字。
kotlinCopy Code open class Animal(val name: String) {
open fun makeSound() {
println("$name 发出不同的声音")
}
}
class Cat(name: String) : Animal(name) {
override fun makeSound() {
println("$name 喵喵喵")
}
}
上面的代码中,Animal
类有一个方法makeSound
,而Cat
类覆盖了该方法并实现了自己的逻辑。
示例
下面是一个包含Animal
类和Dog
类的示例代码:
kotlinCopy Code open class Animal(val name: String) {
open fun makeSound() {
println("$name 发出不同的声音")
}
}
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name 汪汪汪")
}
}
fun main() {
val animal = Animal("动物")
animal.makeSound()
val dog = Dog("小狗")
dog.makeSound()
}
运行上面的代码,输出结果如下:
Copy Code动物 发出不同的声音 小狗 汪汪汪
在上面的代码中,Animal
类有一个方法makeSound
,而Dog
类覆盖了该方法并实现了自己的逻辑。在main
函数中,我们创建了Animal
和Dog
的实例,并调用它们的makeSound
方法。