Swift专题讲解十四——继承

简介: Swift专题讲解十四——继承

一、引言


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


二、定义一个基类


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


class Shape {

   var center:(Double,Double)

   init(){

       center = (0,0)

   }

}

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


三、定义一个子类


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


class Circle: Shape {

   var Radio:Double = 0

}

class Rect: Shape {

   var size:(Double,Double)=(0,0)

}

var circle = Circle()

circle.center = (1,1)

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


class Rect: Shape {

   var size:(Double,Double)=(0,0)

   override init(){

       super.init()

       super.center = (1,1)

   }

}

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


四、final关键字


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


class Shape {

   final var center:(Double,Double)

   init(){

       center = (0,0)

   }

}

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


final class Shape {

   final var center:(Double,Double)

   init(){

       center = (0,0)

   }

}

目录
相关文章
|
7月前
|
存储 Java C#
30 如何在Swift中实现继承
如何在Swift中实现继承
27 0
《从零开始学Swift》学习笔记(Day43)——构造函数继承
<span style="font-family:宋体;font-size: 10.5pt; mso-ascii-font-family: Arial; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Arial; mso-bidi-font-family: A
1361 0
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
106 2
|
3月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
213 2
|
4月前
|
监控 Swift iOS开发
局域网计算机监控软件中利用Swift构建iOS端的移动监控应用
在局域网计算机监控软件的开发中,构建iOS端的移动监控应用是一项关键任务。本文将介绍如何利用Swift语言实现这一目标,通过多个代码示例展示关键功能的实现。
225 1
|
4月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
77 0
|
6月前
|
JavaScript 前端开发 PHP
用swift开发ios移动端app应用初体验
直接跟着 apple 官方的 SwiftUI 教程跑的,写惯了 javascript 奔放的代码,很多语法理解起来还是有点费劲
60 1
|
8月前
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
52 0
|
Swift iOS开发
IOS使用Swift加载Xib文件
IOS使用Swift加载Xib文件
271 0