Swift 中的多态与类型转换
1. 子类属性重写
子类可以继承父类的属性,并且可以将其重写为类属性或静态属性。不过,属性重写不存储的规则仍然适用,即使重写的是静态属性。示例代码如下:
class NoisyDog : Dog {
override static var whatDogsSay : String {
return "WOOF"
}
}
2. 多态
当一种计算机语言存在类型和子类型的层次结构时,它必须解决这种层次结构对对象类型和对象引用声明类型之间关系的影响。Swift 遵循多态原则,多态使基于对象的语言转变为成熟的面向对象语言。Swift 的多态原则总结如下:
- 替换原则 :在需要某种类型的地方,可以使用该类型的子类型代替。
- 内部标识原则 :对象的类型取决于其内部本质,而与对象的引用方式无关。
下面通过代码示例来理解这两个原则:
class Dog {
func bark() {
print("woof")
}
}
class NoisyDog : Dog {
override func bark() {
for _ in 1...3 {
super.bark()
}
}
}
func tellToBark(_ d:Dog) {
d.b
超级会员免费看
订阅专栏 解锁全文

2481

被折叠的 条评论
为什么被折叠?



