w Swift można utworzyć dziedziczenia:Jak uzyskać odniesienie do rodzica/super klasy w Swift?
class A {
}
class B:A {
}
W tym przykładzie B
dziedziczy A
. Jeśli utworzę funkcję w B, czy mogę uzyskać odniesienie do jej super klasy A
? Myślałam, że będzie coś takiego:
self.super
Albo
self.super()
Albo
self.parent
Próbowałem wszystkie z nich i nikt pracował dla mnie. Czy ktoś wie, jak uzyskać odniesienie do super klasy?
Co masz na myśli przez "odniesienie do swojej nadklasy"? Co tak naprawdę próbujesz zrobić? Możesz uzyskać dostęp do odziedziczonej _implementacji_ jakiejś metody - zwykle jest to wszystko, o co poprosi każdy. Czegóż więcej chcesz w praktycznym życiu? – matt
@matt Chcę dynamicznego odniesienia do super klasy dowolnej klasy, aby dowiedzieć się, jaka jest klasa podstawowa. Stamtąd zakładam, że powinienem móc go utworzyć lub przeprowadzić jakąś refleksję na ten temat. –
Swift nie ma introspekcji; to jest celowe. Możesz poprosić Cocoa o introspekcję, ale nie podałeś prawdziwego przykładu tego, co chcesz zrobić. Jeśli chodzi o to, że powinieneś zrobić jedną rzecz, jeśli jest to B, a jeśli jest to A, to zajmuje się tym polimorfizm. Na przykład można łatwo napisać funkcję fabryczną, która tworzy wystąpienia A lub B w zależności od tego, od czego zaczynamy. Znowu, i po raz ostatni, pytam cię, co tak naprawdę chcesz zrobić. – matt