美文网首页
swift继承

swift继承

作者: BetterComingDay | 来源:发表于2017-06-26 17:46 被阅读10次
1、属性的继承

子类可以继承父类的属性,包括存储属性、计算属性和类型属性

class Person{
    //存储属性
    var age = 20
    //计算属性
    var description: String{
        return "我现在\(self.age)岁了"
    }
    //类型属性
    static var kind = "Chinese"
}
class Teacher : Person{}
let teacher = Teacher()
print(teacher.age,teacher.description,"\(Teacher.kind)")

控制台:

20 我现在20岁了 Chinese
2、属性观察器的继承
class Person{
    //存储属性
    var age = 20{
        willSet{
            print("age即将被赋值\(newValue)")
        }
        didSet{
            if(age > oldValue){
                print("新赋值的值比原来的大")
            }else{
                print("新赋值的值比原来的小")
            }
        }
    }
}
class Teacher : Person{}
var t:Teacher = Teacher()
t.age = 19

控制台:

age即将被赋值19
新赋值的值比原来的小
3、下标脚本的继承
class Person{
    subscript (index:Int) -> String{
        switch index{
        case 1:
            return "1"
        case 2:
            return "2"
        case 3:
            return "3"
        default:
            return "default"
        }
    }
}
class Teacher : Person{}
let teacher = Teacher()
print(teacher[1],teacher[6])

控制台:

1 default
4、方法的继承

包括对象方法和类方法

class Person{
    func description(){
        print("我是Person的方法")
    }
}
class Teacher : Person{}
let teacher = Teacher()
teacher.description()

控制台:

我是Person的方法
5、增加新属性和方法
class Person{
    subscript (index:Int) -> String{
        switch index{
        case 1:
            return "1"
        case 2:
            return "2"
        case 3:
            return "3"
        default:
            return "default"
        }
    }
    func run(){
        print("Person is running")
    }
}
class Teacher : Person{
    let age = 15
    func walk(){
        print("Teacher is walking")
    }
}
let person = Person()
let teacher = Teacher()
person.run()
teacher.walk()
print(teacher.age)

控制台:

Person is running
Teacher is walking
15

相关文章

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • oc 继承 swift 类

    oc 继承 swift 类 项目中使用 oc 继承 swift 类编译器报错: oc 继承前增加 objc_sub...

  • OC调用Swift

    OC调用Swift,Swift的类必须继承NSObject

  • Swift枚举高级用法(Enum)

    关于swift的枚举 一 swift对于枚举的扩展性(Enum) 枚举的继承(继承任何类和协议,目前除了swift...

  • 类继承

    继承是面向对象的重要特征之一。swift中的继承只能发生在类上,结构体和枚举不能继承。在swift中,一个类继承另...

  • Swift 5.x - 初始化(中文文档)

    引言 继续学习Swift文档,从上一章节:继承,我们学习了Swift继承相关的内容,如继承的作用、重写父类的方法和...

  • swift方法参数遵守多继承和遵守多个协议

    参数继承协议 OC中 id Swift 3 protocol Swift 4 A & B 文档

  • swift继承

    一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。在 S...

  • Swift:继承

    中文文档 一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类...

  • swift 继承

    继承 类可以从另一个类继承方法,属性和其他特性 当一个类继承自另一个类时,继承类为子类,它继承的类称为其超类 子类...

网友评论

      本文标题:swift继承

      本文链接:https://www.haomeiwen.com/subject/cjyjcxtx.html