程序员

swift基础之class详解

2018-01-24  本文已影响0人  追忆之丘

swift的class里面包含inheritance,overriding,polymorphism和composition

今天主要讲解继承(inheritance)和重写(overriding)

首先什么是继承?用通俗易懂的话来说,比如你继承了你父母的公司,那么你就拥有了继承的公司的全部财产(property),在此基础上你还可以继续把公司进行的更好让公司拥有更多的财产(property),在swift里面的class的继承(inheritance)里面,父类(parent class)就相当于上述例子中你父母的公司,子类( child class)就相当于上述例子中的你

接下来让我们看看代码

很明显的一点是Student和Person里面有部分属性重复了,都有firstName和lastName,我们通过class的继承可以避免重复冗余代码的出现,我们用Student继承Person即可,这样Student也会拥有Person的各种属性,代码如下

上图可以很清晰的看到Student继承了Person,此时Student是Person的子类,Person是Student的父类,Student拥有Person的各种属性

现在我们来说一下重写(overriding)

在 Swift 中,类可以调用和访问超类的方法,属性和附属脚本(subscripts),并且可以重写(override)这些方法,属性和附属脚本来优化或修改它们的行为。Swift 会检查你的重写定义在超类中是否有匹配的定义,以此确保你的重写行为是正确的。

看下面的例子,我们定义了一个学生运动员(StudentAthelte)的类,它继承自Student,然后我们在StudentAthelte里面重写了recordGrade这个方法,代码如下

这样我们就重写了recordGrade这个方法,让我们来看看这个方法吧

重写后的recordGrade统计出了grades里面litter为F的数目,我们并设定了一个淘汰值,当grades里面的F数量达到3时就淘汰掉。

上一篇 下一篇

猜你喜欢

热点阅读