📜  Swift继承

📅  最后修改于: 2021-01-11 07:57:13             🧑  作者: Mango

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

在此,将具有“学生详细信息”的类名的类定义为包含学生姓名和三个标记为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”关键字用作访问在超类中声明的方法,属性和下标的前缀。

Overriding Access to methods,properties and subscripts
Methods super.somemethod()
Properties super.someProperty()
Subscripts super[someIndex]