12--swift之继承

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

}

}

相关文章
相关标签/搜索