首页 理论教育 符合协议的类型与继承的区别及语法应用

符合协议的类型与继承的区别及语法应用

时间:2023-06-23 理论教育 版权反馈
【摘要】:上一小节中已经声明了两个结构体是符合printable协议的。读者需要仔细观察符合协议的语法以及其不同于类型继承的地方,因为符合协议的语法与继承的语法看起来是完全一致的。首先,所有的类型都可以符合协议,无论是结构体、枚举还是类都可以。动手写8.1.3 ConfirmProtocol控制台输出如下:控制台输出如下:本例中,将Apple定义为类,声明了一个ChineseApple的类继承自Apple。此外声明了一个新的协议fruit和打印函数printFruitColor(),然后为Banana添加了新的符合协议fruit,以便后面打印其颜色。

符合协议的类型与继承的区别及语法应用

上一小节中已经声明了两个结构体(Apple和Banana)是符合printable协议的。读者需要仔细观察符合协议的语法以及其不同于类型继承的地方,因为符合协议的语法与继承的语法看起来是完全一致的。现在读者仍需了解:什么样的类型在声明时需要加上符合的协议;一个类型是否可以符合多个协议;如果父类符合了协议,那么子类是不是自然而然地继承了这种符合关系。

现在,我们来一一解答这些问题。首先,所有的类型都可以符合协议,无论是结构体、枚举还是类都可以。一个类型可以符合多个协议,用逗号“,”隔开(这里需要注意,如果是类,那么协议要写在继承关系之后,也就是父类之后才是符合协议的声明)。父类如果实现了某种协议,那么子类一定也是符合某种协议的,因为它从父类中继承了协议中的属性和方法。

动手写8.1.3 ConfirmProtocol

控制台输出如下:(www.xing528.com)

控制台输出如下:

本例中,将Apple定义为类,声明了一个ChineseApple的类继承自Apple。此外声明了一个新的协议fruit和打印函数printFruitColor(),然后为Banana添加了新的符合协议fruit,以便后面打印其颜色。这个示例中,ChineseApple继承了Apple符合的printable协议,也能被打印函数所打印,Banana符合了printable和fruit两种协议,既可以打印info方法的结果,也可以打印颜色。使用协议可以让程序显得更加灵活。

本例中,将Apple定义为类,声明了一个ChineseApple的类继承自Apple。此外声明了一个新的协议fruit和打印函数printFruitColor(),然后为Banana添加了新的符合协议fruit,以便后面打印其颜色。这个示例中,ChineseApple继承了Apple符合的printable协议,也能被打印函数所打印,Banana符合了printable和fruit两种协议,既可以打印info方法的结果,也可以打印颜色。使用协议可以让程序显得更加灵活。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈