>

UITableViewController 에서 파생 된 클래스 (편의 이름은 A)를 구현해야합니다.   UICollectionViewController 에서 또 다른 (B) . 그리고 많은 공통점이 있기 때문에 클래스 (C)에 넣고 A와 B가 C를 상속하게하고 싶습니다. 이제 A와 B에는 상속 할 두 개의 클래스가 있지만 다중 상속은 신속하게 허용되지 않습니다. 이것을 구현하기 위해? 신속한 다중 상속이 허용되지 않는다는 것을 알고 있지만 위에서 설명한 작업을 수행하는 방법을 여전히 알고 싶습니다.

  • 답변 # 1

    @ Paulw11의 의견에 명시된 바와 같이 정확합니다. 다음은C에서 상속하는AB와 관련된 예입니다. 내가 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()
    
    

  • 답변 # 2

    Swift에서 다중 상속을 가질 수는 없습니다. 진행 방법은 프로토콜을 보는 것입니다. 그러나 답변에서 논의하는 것은 다소 큰 주제입니다.

    같은 범위를 가진 다른 많은 질문들도 있습니다.

    p

    Swift에서는 다중 상속이 허용되지 않습니다. 대신 모든 프로토콜을 준수 할 수 있습니다. 프로토콜은 Java의 인터페이스와 같습니다.

  • 이전 html - 두 개의 링크가있는 하나의 fa 아이콘
  • 다음 javascript - jsPDF를 사용하여 PDF로 두 페이지로 이미지를 표시하는 방법은 무엇입니까?