나는 1 개의 추상 클래스 "A"와 몇개의 상속 된 클래스 AA, AB ... 등을 가지고있다. 그것은 상속받은 클래스가 약 15 개일 것이다.수퍼 클래스의 인스턴스에 의한 서브 클래스 클래스의 호출 메소드
변수 "point"는 상속 된 클래스 중 하나의 개체이지만 어떤 개체인지는 모르므로 처음에는 "A"로 정의합니다. 여기
코드입니다 : 이제import Foundation
class A {
func callA() {}
}
var point:A
class AA:A {
func callAA() -> String { return "AA" }
}
class AB:A {
func callAB() -> String { return "AB" }
}
"포인트" "AB"예를 내가 "AB"클래스의 메소드를 호출 할,하지만 오류 발생 : Value of type 'A' has no member 'callAB'
point = AB() // Correct
point.callAB() // Error
을
이 경우 "callAB"메서드를 어떻게 호출 할 수 있습니까?
나는 싶지 않아 :
- 클래스의 상속 클래스 중 일부는 "A"이 방법을 포함 할 수 없습니다 때문에 "callAB"방법 클래스의 "A"를 정의하고 클래스 "AB"에 재정의 . 이 같은
쓰기 뭔가 :이 상속 클래스를 많이하고 내가 그들 중 하나를 확인해야합니다
if point is AB { (point as! AB).callAB() }
때문이다.
각 클래스를 확인하지 않으려 고하지만, 지금은 필연적입니다. 감사. – Soloqub