Swift编程:继承、抽象、专业化与协议的运用
继承、抽象与专业化
在编程中,我们可以利用简单继承来对基类进行专业化处理。例如,我们已经声明了一个操作符函数,允许 Animal 类或其子类的任何实例使用后缀递增( ++ )操作符。但有时,我们希望为某个子类及其子类指定不同的行为。
比如,我们想以相当于人类年龄的值来表示狗的年龄。可以为后缀递增( ++ )操作符声明一个操作符函数,该函数接收一个 Dog 实例作为参数,并将年龄值增加7岁,而不是1岁。代码如下:
public postfix func ++ (dog: Dog) {
dog.age += 7
}
以下是创建 SmoothFoxTerrier 类实例 goofy 的代码示例,展示了该操作符的使用:
var goofy = SmoothFoxTerrier(age: 7, name: "Goofy", favoriteToy: "Scarf")
goofy.printAge()
goofy++
goofy.printAge()
由于 SmoothFoxTerrier 是 Dog 的子类,Swift会调用接收 Dog 实例的操作符函数,而
超级会员免费看
订阅专栏 解锁全文
7843

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



