美文网首页
swift继承

swift继承

作者: buzaixian程序员 | 来源:发表于2018-03-14 16:32 被阅读3次

一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。在 Swift 中,继承是区分「类」与其它类型的一个基本特征。
不继承于其它类的类,称之为基类。

//animal是一个基类,定义了一个name属性和有参有返回值eating方法
class Animal {
    var name : String?
    func eating(food:String) -> String {
        return name! + "吃" + food
    }
}

var dog = Animal()
dog.name = "狗"
print("\(dog.eating(food: "屎嘛?"))")

//继承animal
class Dog : Animal {
    var age = 5
}

var husky = Dog()
//引用子类的属性和方法
husky.name = "哈士奇"
print("\(husky.eating(food: "枕头"))")

//重写,子类可以为继承来的实例方法,类方法,实例属性,或下标提供自己定制的实现。我们把这种行为叫重写。
//如果要重写某个特性,你需要在重写定义的前面加上override关键字。这么做,你就表明了你是想提供一个重写版本,而非错误地提供了一个相同的定义。意外的重写行为可能会导致不可预知的错误,任何缺少override关键字的重写都会在编译时被诊断为错误。
//override关键字会提醒 Swift 编译器去检查该类的超类(或其中一个父类)是否有匹配重写版本的声明。这个检查可以确保你的重写定义是正确的。

class Cat : Animal {
    // 重写eating方法
    override func eating(food: String) -> String {
        return "别说了,我吃猫粮"
    }
}

var cat = Cat()
cat.name = "小猫咪"
print("\(cat.eating(food: "xxx"))")

//防止重写。你可以通过把方法,属性或下标标记为final来防止它们被重写,只需要在声明关键字前加上final修饰符即可(例如:final var,final func)
输出 image.png

相关文章

  • 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/llnfqftx.html