Swift3 で基底クラス Example をもとに派生した ExampleA, ExampleB, ExampleC, ... などのクラスがあったとします。
それらを共通の関数で処理して、処理後のオブジェクトを返したいと思うのですがその際の型宣言をどのようにしたらいいのでしょうか?
swift
1var foo = ExampleA() // Example を継承したサブクラス 2foo = process(item: foo) // サブクラスなのでエラー 3 4func process(item: Example) -> Example { 5 // 何らかの処理 6 return item 7}
関数は Example を継承したクラスであればどれでも受け付けられるようにしたいのですが、型宣言で Example としてしまうと基底クラスしか受け付けてくれません。また、返り値も同様に基底クラスとして返すことになると思いますが、サブクラス ExampleA を渡せばそのまま ExampleA が返ってくるようにしたいです。
何か良い方法はないでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。