1. 基类和子类:
// 定义一个基类
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Some generic sound")
}
}
// 定义一个子类,继承自基类
class Dog: Animal {
func bark() {
print("Woof! Woof!")
}
// 重写父类的方法
override func makeSound() {
print("Bark! Bark!")
}
}
2. 创建子类实例:
// 创建基类实例
let animal = Animal(name: "Generic Animal")
// 创建子类实例
let dog = Dog(name: "Buddy")
3. 调用父类方法:
// 调用父类方法
animal.makeSound() // 输出 "Some generic sound"
dog.makeSound() // 输出 "Bark! Bark!"
4. 调用子类特有方法:
// 调用子类特有方法
dog.bark() // 输出 "Woof! Woof!"
5. 重写属性和方法:
class Cat: Animal {
var isLazy: Bool
init(name: String, isLazy: Bool) {
self.isLazy = isLazy
super.init(name: name)
}
// 重写父类的属性
override var name: String {
didSet {
print("Cat's name is set to \(name)")
}
}
// 重写父类的方法
override func makeSound() {
print("Meow! Meow!")
}
}
let cat = Cat(name: "Whiskers", isLazy: true)
cat.name = "Fluffy" // 输出 "Cat's name is set to Fluffy"
cat.makeSound() // 输出 "Meow! Meow!"
6. 调用父类的初始化器:
class Bird: Animal {
var canFly: Bool
init(name: String, canFly: Bool) {
self.canFly = canFly
super.init(name: name)
}
}
let bird = Bird(name: "Eagle", canFly: true)
7. 防止重写:
使用 final 关键字可以防止类的属性、方法或整个类被重写。
final class FinalClass {
// ...
}
class Subclass: FinalClass {} // 编译错误,无法继承 final 类
这些是一些基本的继承操作。继承使得代码可以更加模块化和可复用,子类可以共享父类的代码并添加或修改其行为。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6854/Swift