10、Swift编程:继承、抽象、专业化与协议的运用

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 实例的操作符函数,而

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值