Swift专题讲解十四——继承

Swift专题讲解十四——继承

一、引言

        Swift中,一个类可以从另一个类继承方法、属性、下标及其他特性。当一个类继承于另一个类时,这个类被称为子类,所继承的类被称为父类。在Swift中,继承是类区别于其他类型的主要特征。子类除了可以调用父类的属性,下标,方法外,其也可以对父类的属性,下标,方法进行覆写。

二、定义一个基类

        不继承于任何类的类被称为基类,示例如下:

1class Shape { 2 var center:(Double,Double) 3 init(){ 4 center = (0,0) 5 } 6}

上面代码定义了一个图形类,其中定义了一个中心点,任何图形都会有中心点,所以把其作为基类属性。

三、定义一个子类

        图形基类可以派生出许多图形子类,例如矩形,圆形等,示例代码如下:

1class Circle: Shape { 2 var Radio:Double = 0 3} 4class Rect: Shape { 5 var size:(Double,Double)=(0,0) 6} 7var circle = Circle() 8circle.center = (1,1)

可以看到,Circle类从父类中继承到了center属性。默认子类也会继承父类的构造方法,如果子类需要实现自己的构造方法,可以对父类的方法进行覆写,使用override关键字:

1class Rect: Shape { 2 var size:(Double,Double)=(0,0) 3 override init(){ 4 super.init() 5 super.center = (1,1) 6 } 7}

通过super关键字可以调用父类的属性和方法,同样,也可以使用override关键字来对属性进行get和set的覆写。同样也可以重写属性的观察期willset和didset。

四、final关键字

        在开发中很多情况下为了安全考虑,有些方法和属性是不允许子类进行覆写的,使用final声明这些属性,方法或者下标可以起到这样的作用。示例如下:

1class Shape { 2 final var center:(Double,Double) 3 init(){ 4 center = (0,0) 5 } 6}

如果想将某个类设置为不可继承的,可以将此类使用final关键字修饰,示例如下:

1final class Shape { 2 final var center:(Double,Double) 3 init(){ 4 center = (0,0) 5 } 6}

专注技术,热爱生活,交流技术,也做朋友。

——珲少 QQ群:203317592

点赞
收藏

评论区

加载中...

相关推荐

一篇文章带你搞懂Python中的继承和多态

一、继承的介绍继承是一种创建新的类的方式,新创建的叫子类,继承的叫父类、超类、基类。继承的特点就是子类可以使用父类的属性(特征、技能)。继承是类与类之间的关系。继承可以减少代码冗余、提高重用性。在现实生活中,继承一般指的是子女继承父辈的财产,如下图:二、如何用继承?1.继承语法Class派生类名(基类名):基类名写在括号里。在继承关系中,已有的,设计好

你不可不知的JS面试题(第二期)

1、什么是继承?子类可以使用父类的所有功能,并且对功能进行扩展。新增方法改用方法(1)、ES6使用extends子类继承父类的方法。// 父类    class A        constructor(name)            this.name name;                getNa

Python的新式类和旧式类

概述:Python中支持多继承,也就是一个子类可以继承多个父类/基类。当一个调用一个自身没有定义的属性时,它是按照何种顺序去父类中寻找的呢?尤其是当众多父类中都包含有同名的属性,这就涉及到新式类和经典类的区别。多继承:classFood(object):23def__init__(self,name,col

Python Day24:类的继承、派生、覆盖、super()、绑定、非绑定方法

类的继承、派生、覆盖、super()python类的继承:子类继承父类,只需要在定义类的时候在类名后面加上(父类名)。继承之后,父类的属性方法、子类都可以访问派生:子类继承父类后,自己在父类的基础上,又添加了一些属于自己特性的属性、方法

Java的类继承

知识点1、继承作用:提高代码的重用性,继承之后子类可以继承父类中的属性和方法减少重复代码条件:子类和父类要满足isa的逻辑关系,才能使用继承。如:苹果isa水果语法:使用extends连接子类和父类。子类extends父类Java是单继承,一个类只能继承一个父类。子类不能继承父类私有的属性,但是可以

Java高级类特性(一)

一、继承性!(https://oscimg.oschina.net/oscnet/4da087cd3fa07b567f305a479b4035e99b8.png)1)继承的使用:权限修饰符classAextendsB{};2)子类:A父类(基类SuperClass):B3)子类继承父类后,父类中声明的属性、方法,子