2.Swiftクラスとインタフェースの詳細


2.Swiftクラスとインタフェースの詳細
  • Swiftクラスとインタフェースの詳細
  • クラス継承
  • クラス動的拡張
  • プロトコルインタフェース
  • 出力結果

  • クラス継承:
    //   
    class Me{
        var _name:String?="???"
    
        init(){
        }
    
        init(name:String){
            self._name = name
        }
    
        func say(){
            print("Me: \(self._name)")
        }
    
        //     
        class func classfunc(){
            print("static class func")
        }
    
    }
    
    //   
    class SuperCat: Me {
        //     say()
        override func say() {
            super.say()
            print("SuperCat: \(self._name)")
        }
    }

    クラス動的拡張extension
    //       ( Me         superSay)
    extension Me{
        func superSay(){
            print("extension class")
        }
    }

    プロトコル(インタフェース)protocol
    //       (  )
    protocol Interface{
        func info()->String
    }
    
    //      
    class Implement:Interface{
        func info() -> String {
            return "implement"
        }
    }

    出力結果
    print(" ======    ======",terminator: "
    "
    )
    var m1 = Me() var m2 = Me(name:"CaMnter") m1.say() m2.say() Me.classfunc() print(" ====== ======",terminator: "
    "
    )
    var sc = SuperCat(name: "CaMnter") sc.say() print(" ====== ======",terminator: "
    "
    )
    sc.superSay() print(" ====== ======",terminator: "
    "
    )
    var i2 = Implement() print("\(i2.info())")

    出力結果:
     ======    ======
    Me: Optional("???")
    Me: Optional("CaMnter")
    static class func
     ======    ======
    Me: Optional("CaMnter")
    SuperCat: Optional("CaMnter")
     ======        ======
    extension class
     ======    ======
    implement