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)

   }

}

目录
相关文章
|
存储 Java C#
30 如何在Swift中实现继承
如何在Swift中实现继承
61 0
|
1月前
|
存储 Swift 开发者
Swift 是一种现代编程语言,支持面向对象编程(OOP),包括类、对象、继承、多态等核心概念
Swift 是一种现代编程语言,支持面向对象编程(OOP),包括类、对象、继承、多态等核心概念。通过这些特性,Swift 能够帮助开发者构建结构清晰、可维护性强的代码。本文介绍了 Swift 中 OOP 的基本概念、高级特性和实际应用,并通过一个简单的 `Car` 类示例展示了如何在 Swift 中实现面向对象编程。
24 1
|
1月前
|
存储 Swift
Swift 继承
10月更文挑战第30天
29 0
|
7月前
|
安全 Swift 开发者
【Swift开发专栏】Swift类的继承与多态
【4月更文挑战第30天】Swift中的OOP聚焦于类继承与多态,提供代码复用和类型安全。继承通过`class`和冒号实现,子类继承父类属性和方法,支持单继承以降低复杂性。多态借助协议和类型兼容实现,允许统一处理不同类型的对象。继承用于构建复杂类,多态则使代码更通用、可扩展。理解并运用这些概念对Swift开发者至关重要。
62 0
|
存储 Java Swift
Swift实用小册12:Class类的继承
和Apple官网或者网上分享的教程类文章不同,我将以实际开发角度讲述Swift语言的一些概念和用法,方便大家更好地学习和掌握Swift语言。 这同时也是对自己学习Swift语言过程的知识整理。
234 0
Swift实用小册12:Class类的继承
|
存储 安全 Java
Swift5.0 - day5-继承、初始化、可选链、协议(上)
Swift5.0 - day5-继承、初始化、可选链、协议(上)
132 0
Swift5.0 - day5-继承、初始化、可选链、协议(上)
|
存储 Swift
Swift5.0 - day5-继承、初始化、可选链、协议(下)
Swift5.0 - day5-继承、初始化、可选链、协议(下)
95 0
|
安全
Swift5.1—构造器的自动继承
Swift5.1—构造器的自动继承
189 0
|
存储 编译器 Swift
Swift5.1—继承
Swift5.1—继承
126 0
|
Swift iOS开发
Swift里的类继承,构造和析构代码
敲敲打打, 每天差不多一个小时来学这个, 相信到时候再用XCODE,感觉会熟悉很多。。
1339 0

热门文章

最新文章