《从零开始学Swift》学习笔记(Day 41)——类的继承

简介:

Swift中的继承只能发生在类上,不能发生在枚举和结构体上。一个类可以继承另一个类的方法、属性、下标等特征,当一个类继承其他类时,继承类叫子类,被继承类叫父类(或超类)。子类继承父类后,可以重写父类的方法、属性、下标等特征。 

为了了解继承性,看这样一个场景:一位面向对象的程序员小赵,在编程过程中需要描述和处理个人信息,于是他定义了类Person,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
class  Person {
     var name: String
     var age: Int
     
     func description() -> String {
         return  "\(name) 年龄是: \(age)"
     }
     init () {
         name =  ""
         age =  1
     }
}


一周以后,小赵又遇到了新的需求,需要描述和处理学生信息,于是他又定义了一个新的类Student,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class  Student {
     var name: String
     var age: Int
  
     var school: String
     
     func description() -> String {
         return  "\(name) 年龄是: \(age)"
     }
     init() {
         school =  ""
         name =  ""
         age =  8
     }
}


很多人会认为小赵的做法能够理解并相信这是可行的,但是问题在于StudentPerson两个类的结构太接近了,后者只比前者多了一个属性school,却要重复定义其他所有的内容,实在让人“不甘心”。Swift提供了解决类似问题的机制,那就是类的继承,代码如下所示:

1
2
3
4
5
6
7
8
class  Student: Person {
     var school: String
     overrideinit() {
         school =  ""
         super .init()
         age =  8
     }
}


Student类继承了Person类中的所有特征,“:”之后的Person类是父类。Swift中的类可以没有父类,例如Person类,定义的时候后面没有“:”,这种没有父类的就是基类

此外override init()是子类重写父类构造函数。

一般情况下,一个子类只能继承一个父类,这称为单继承,但有的情况下一个子类可以有多个不同的父类,这称为多重继承。在Swift中,类的继承只能是单继承。多重继承可以通过遵从多个协议实现。也就是说,在Swift中,一个类只能继承一个父类,但是可以遵循多个协议。



本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1747494,如需转载请自行联系原作者

相关文章
|
存储 Java C#
30 如何在Swift中实现继承
如何在Swift中实现继承
61 0
|
1月前
|
存储 Swift 开发者
Swift 是一种现代编程语言,支持面向对象编程(OOP),包括类、对象、继承、多态等核心概念
Swift 是一种现代编程语言,支持面向对象编程(OOP),包括类、对象、继承、多态等核心概念。通过这些特性,Swift 能够帮助开发者构建结构清晰、可维护性强的代码。本文介绍了 Swift 中 OOP 的基本概念、高级特性和实际应用,并通过一个简单的 `Car` 类示例展示了如何在 Swift 中实现面向对象编程。
24 1
|
1月前
|
Swift 索引 容器
Swift 泛型-关联类
Swift 泛型-关联类
23 1
|
2月前
|
Swift
Swift 中 struct(结构体)和 class(类)的区别
【10月更文挑战第10天】理解 struct 和 class 的区别对于正确使用 Swift 语言进行编程非常重要。在实际开发中,需要根据具体的需求和场景来选择合适的数据类型,以充分发挥它们的优势,提高代码的质量和效率。
|
1月前
|
存储 Swift
Swift 继承
10月更文挑战第30天
27 0
|
1月前
|
存储 Swift iOS开发
Swift 类
10月更文挑战第29天
14 0
|
7月前
Swift4.0判断本函数是否在其它类有相同的方法
Swift4.0判断本函数是否在其它类有相同的方法
46 0
|
7月前
|
安全 Swift 开发者
【Swift开发专栏】Swift类的继承与多态
【4月更文挑战第30天】Swift中的OOP聚焦于类继承与多态,提供代码复用和类型安全。继承通过`class`和冒号实现,子类继承父类属性和方法,支持单继承以降低复杂性。多态借助协议和类型兼容实现,允许统一处理不同类型的对象。继承用于构建复杂类,多态则使代码更通用、可扩展。理解并运用这些概念对Swift开发者至关重要。
62 0
|
7月前
|
存储 数据处理 Swift
在Swift中,类(class)和结构体(struct)
在Swift中,类(class)和结构体(struct)
78 1
|
存储 安全 Swift
29 Swift如何进行类的初始化和反初始化
Swift如何进行类的初始化和反初始化
108 0

热门文章

最新文章