Ich habe 1 abstrakte Klasse "A" und einige geerbte Klassen AA, AB ... etc. Es wird etwa 15 vererbte Klassen überhaupt sein.Aufruf Methode der Unterklasse Klasse von Instanz der Oberklasse
Variable "Punkt" ist ein Objekt einer der geerbten Klassen, aber ich weiß nicht welche, also am Anfang definiere ich es als "A".
Hier ist ein Code:
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" }
}
Now "Punkt" ist "AB" Instanz und ich möchte Methode der "AB" Klasse nennen, aber es den Fehler erzeugen: Value of type 'A' has no member 'callAB'
point = AB() // Correct
point.callAB() // Error
Wie kann ich in diesem Fall die Methode "callAB" aufrufen?
Ich will nicht zu:
- definieren „CalLab“ Methode in der Klasse „A“ und es in der Klasse „AB“ außer Kraft setzen, da einige geerbte Klassen der Klasse „A“ diese Methode nicht enthalten .
schreiben etwas wie folgt aus:
if point is AB { (point as! AB).callAB() }
weil es eine Menge von geerbten Klassen sind, und ich werde eine von ihnen zu überprüfen.
ich w Anted, um zu vermeiden, jede Klasse zu überprüfen, aber es scheint mir jetzt ist es unvermeidlich. Vielen Dank. – Soloqub