Swift---13.继承

  • 继承:

Swift中,一个类可以从另一个中继承它的方法以及属性.则继承了另一个类的类,被称为子类,被继承的类,称为父类.只有类才能够被继承.在声明类时,类名后使用:加上父类名称就可以继承该类

//定义一个基类"SuperClass",Swift中,自定义的类,如果没有继承其他类,那么它就是基类
class SuperClass {
    var vari = 0
    func description() {
        print("super log")
    }
}
//定义一个继承与"SuperClass"的子类"SubClass"
class SubClass:SuperClass {
}
var subClass = SubClass()
subClass.description()
  • 重写:

子类可以对父类的实例方法,类方法,实例属性,类属性进行修改,即重写,使用override关键字表示你将重写某个方法或属性)

  • 重写实例属性,实例方法
   //父类
   class SuperClass {
       //父类属性
       var vari:Int {
           return 10
       }
       //父类方法
       func description() {
           print("super log")
       }
   }
   //子类
   class SubClass:SuperClass {
       //子类自带属性
       var num = 0
       //重写父类属性
       override var vari : Int {
           set{
               num = newValue + 10
           }
           get {
               return num
           }
       }
       //重写父类方法
       override func description() {
           print("sub log")
       }
   }
   //生成父类对象
   var superClass = SuperClass()
   superClass.vari
   print(superClass.vari)
   superClass.description()
   //生成子类对象
   var subClass = SubClass()
   subClass.vari = 10
   print(subClass.vari)
   subClass.description()
  • 重写属性监听者

   class SuperClass {
       var vari:Int = 0
   }
   class SubClass:SuperClass {
       var num = 0
       override var vari : Int {
           didSet  {
               print("sub didSet")
           }
       }
   }
   //生成子类对象
   var subClass = SubClass()
   subClass.vari = 10
  • 防止重写(如果我们不希望子类修改父类的属性或者方法,可以在前面添加final关键字,表明该属性或方法不可以被子类重写)

你可能感兴趣的:(Swift---13.继承)