我需要实现一个从UITableViewController派生的类(为了便利名称A)和从UICollectionViewController派生的另一个(B).并且有很多常见的东西,所以我想把它们放在一个类(C)中让A和B继承C.现在A和B都有两个继承类,但是在
swift中不允许多重继承,所以怎么实现这个?我知道swift中不允许多重继承,但我仍然想知道如何做我上面描述的事情.
解决方法
正如@ Paulw11的评论所述,是正确的.这是一个涉及A& A的例子. B继承自C.我将其命名为DogViewController和CatViewController(继承了PetViewController的形式).您可以看到协议如何有用.这只是一个非常基本的例子.
protocol Motion { func move() } extension Motion where Self: PetViewController { func move() { //Open mouth } } class PetViewController: UIViewController,Motion{ var isLoud: Bool? func speak(){ //Open Mouth } } class DogViewController:PetViewController { func bark() { self.speak() //Make Bark Sound } } class CatViewController: PetViewController { func meow() { self.speak() //Make Meow Sound } } //.... let cat = CatViewController() cat.move() cat.isLoud = false cat.meow()