差分

ナビゲーションに移動 検索に移動
ページの作成:「'''swift'''には抽象クラスなどという軟弱な概念はないが、protocolとextensionを組み合わせるとそれっぽくなる。 <source lang=swift> pro…」
'''swift'''には抽象クラスなどという軟弱な概念はないが、protocolとextensionを組み合わせるとそれっぽくなる。

<source lang=swift>
protocol SomeProtocol {
func foo()
}
extension SomeProtocol {
// メソッドのデフォルトの実装
func foo() {
}
}

class SomeClassA: SomeProtocol {
// メソッドのオーバーライドされた実装
func foo() {
}
}
class SomeClassB: SomeProtocol {
// foo()メソッドを書かないとextensionのデフォルトの実装が呼ばれる
}
</source>

[[category: swift]]

案内メニュー