Swift 继承
在Swift编程语言中,一个类可以继承另一个类的属性、方法和其他特性。将这些属性和特性从一个类继承到另一个类被称为继承。
子类: 继承其他类的属性的类被称为子类或派生类。
超类: 从中子类继承属性的主类被称为父类或超类。
Swift4类包括调用和访问方法、属性、函数和重载方法的超类。属性观察者用于添加属性和修改存储和计算属性的方法。
语法
class class_name: Superclass_name
{
// Definition of the class
}
基类
基类是一个不从其他类继承方法、属性或函数的类。
示例
class StudentDetails {
var stname: String!
var mark1: Int!
var mark2: Int!
var mark3: Int!
init(stname: String, mark1: Int, mark2: Int, mark3: Int) {
self.stname = stname
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
let stname = "Aryan"
let mark1 = 70
let mark2 = 80
let mark3 = 85
print(stname)
print(mark1)
print(mark2)
print(mark3)
输出:
Aryan
70
80
在这里,使用名为StudentDetails的类定义了一个基类,其中包含学生的姓名和三个科目的成绩,分别是mark1、mark2和mark3。关键字’let’用于初始化基类的值,并使用’print’函数显示基类的值。
子类
子类继承其基类的属性、方法和函数。要定义一个子类,在基类名称之前使用’:’。
示例
class Person {
var firstName: String
var lastName: String
let birthPlace: String
init(birthPlace: String) {
self.birthPlace = birthPlace
}
}
class Student: Person
{
var school: String
}
let student = Student(birthPlace: "India")
student.lastName = "Head"
student.firstName = "Travis"
print(student.birthPlace)
print(student.firstName)
print(student.lastName)
输出:
India
Travis
Head
覆盖
覆盖用于访问超类的实例、类型方法、实例、类型属性和下标。它使用关键字’override’来覆盖在超类中声明的方法。
super关键字的使用
‘super’关键字用作前缀,以访问在超类中声明的方法、属性和下标。
覆盖 | 可以访问方法、属性和下标 |
---|---|
方法 | super.somemethod() |
属性 | super.someProperty() |
下标 | super[someIndex] |