Xcode
iOS
Swift
swift4

【swift】オーバーライドとオーバーロードの違い

オーバーライドとオーバーロード、言葉は似ていますが全く違うものです。

オーバーライド

継承したスーパークラスのメソッドを上書きすること

class SuperClass{
    func sayHello(){
        print("Hello")
    }
}

class SubClass: SuperClass{
    override func seyHello(){
        print("こんにちは")
    }
}

let superClass = SuperClass()
let subClass = SubClass()
superClass.sayHello() //Hello
subClass.sayHello() //こんにちは

オーバーロード

同じクラスの中に名前は同じだが、引数や戻り値が違うメソッドを定義すること

class SomeClass{
    func sayHello(){
        print("こんにちは")
    }

    func sayHello(name: String){
        print("こんにちは" + name + "さん")
    }
}

let someClass = SomeClass()
someClass.sayHello() //こんにちは
someClass.sayHello(name: "花子") //こんにちは花子さん