1.簡介ide
子類能夠繼承父類的方法,屬性,下標腳本spa
只有類纔能有繼承,結構體,枚舉都沒有orm
class Animal {繼承
var name: String!string
var age: Int!it
func run(){class
print("\(name):\(age) run")方法
}im
}腳本
class Dog: Animal {
override func run(){//覆蓋父類的方法
super.run()
print("dog running..")
}
}
var d = Dog()
d.age = 3
d.name = "huahua"
d.run()
也能夠爲類繼承的屬性添加觀察器
2.父類(基類)是抽象非具體的
class User {
var username: String = "admin"
var password: String = "admin"
func login(username: String,pwd: String){
self.username = username
print("\(username):login")
}
func register(){
print("\(username):register")
}
func addUser(){
print("adduser")
}
}
var u = User()
u.login("tom", pwd: "123")
u.register()
3.重寫
子類能夠爲繼承來的方法,屬性,下標腳本重寫
class Animal {
var name: String?
var age: Int = 2
var desc: String{
return "\(name): \(age)"
}
func run(){
print("animal run")
}
func makenoise(){
print("make noise")
}
}
class Dog: Animal {
override var name: String?{
willSet{//能夠重寫屬性的觀察器
print("name will be changed")
}
}
override var desc: String{
return "Dog\(name):\(age)"
}//能夠重寫計算屬性
override func run() {
print("dog run")
}
override func makenoise() {
print("wang wnag")
}
}
var d = Dog()
d.name = "hua hua"
d.age = 3
print(d.desc)
d.run()
d.makenoise()
能夠經過super.method()調用父類方法
4.防止重寫final
final class SomeClass {
final var v: Int = 1
var b: String = "some string"
final func f1(){
print("f1")
}
func f2(){
print("f2")
}
}
class SubClass: SomeClass {
override var v: Int{
willSet{
print("will set")
}
didSet{
print("did set")
}
}
override func f1() {
print("override f1")
}
override func f2() {
print("override f2")
}
}