Swift 繼承
在Swift編程語(yǔ)言中,一個(gè)類可以繼承另一個(gè)類的屬性、方法和其他特性。愛(ài)掏網(wǎng) - it200.com將這些屬性和特性從一個(gè)類繼承到另一個(gè)類被稱為繼承。愛(ài)掏網(wǎng) - it200.com
子類: 繼承其他類的屬性的類被稱為子類或派生類。愛(ài)掏網(wǎng) - it200.com
超類: 從中子類繼承屬性的主類被稱為父類或超類。愛(ài)掏網(wǎng) - it200.com
Swift4類包括調(diào)用和訪問(wèn)方法、屬性、函數(shù)和重載方法的超類。愛(ài)掏網(wǎng) - it200.com屬性觀察者用于添加屬性和修改存儲(chǔ)和計(jì)算屬性的方法。愛(ài)掏網(wǎng) - it200.com
語(yǔ)法
class class_name: Superclass_name
{
// Definition of the class
}
基類
基類是一個(gè)不從其他類繼承方法、屬性或函數(shù)的類。愛(ài)掏網(wǎng) - it200.com
示例
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的類定義了一個(gè)基類,其中包含學(xué)生的姓名和三個(gè)科目的成績(jī),分別是mark1、mark2和mark3。愛(ài)掏網(wǎng) - it200.com關(guān)鍵字’let’用于初始化基類的值,并使用’print’函數(shù)顯示基類的值。愛(ài)掏網(wǎng) - it200.com
子類
子類繼承其基類的屬性、方法和函數(shù)。愛(ài)掏網(wǎng) - it200.com要定義一個(gè)子類,在基類名稱之前使用’:’。愛(ài)掏網(wǎng) - it200.com
示例
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
覆蓋
覆蓋用于訪問(wèn)超類的實(shí)例、類型方法、實(shí)例、類型屬性和下標(biāo)。愛(ài)掏網(wǎng) - it200.com它使用關(guān)鍵字’override’來(lái)覆蓋在超類中聲明的方法。愛(ài)掏網(wǎng) - it200.com
super關(guān)鍵字的使用
‘super’關(guān)鍵字用作前綴,以訪問(wèn)在超類中聲明的方法、屬性和下標(biāo)。愛(ài)掏網(wǎng) - it200.com
覆蓋 | 可以訪問(wèn)方法、屬性和下標(biāo) |
---|---|
方法 | super.somemethod() |
屬性 | super.someProperty() |
下標(biāo) | super[someIndex] |