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")
}
}