Was ist der Unterschied zwischen final Klasse und der Klasse?
Was ist der Unterschied zwischen final Klasse und der Klasse?
final class A {
}
class B {
}
A
können nicht verlängert werden developer.apple.com/library/content/documentation/Swift/...Du meinst geerbt; - Erweiterung ist eine ganz andere Sache, die in Swift.
Ja, richtig. Sorry
InformationsquelleAutor Mohammad Razipour | 2017-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Final ist Klasse modifier, welche verhindert, dass Sie nicht vererbt oder überschrieben wird. Von der apple-Dokumentation
InformationsquelleAutor luckyShubhra
Klassen markiert mit
final
können nicht überschrieben werden.Warum sollte man alles egal ob Klasse oder nicht überschrieben werden?
Gibt es zwei Dinge zu beachten:
final
verhindert, dass die Klasse als Unterklasse definiert—mission erfüllt. Sie können auchfinal
zu markieren, Methoden, Eigenschaften und auch die Indizes von non-final Klassen. Diese haben denselben Effekt, aber für bestimmte Teile der Klasse.final
auch erzählt Swift-compiler diese Methode sollte aufgerufen werden, direkt (statische Versand) anstatt suchen eine Funktion aus einer Methode Tabelle (dynamic dispatch). Dies reduziert Funktionsaufruf-overhead und gibt Ihnen zusätzliche Leistung. Sie können Lesen Sie mehr dazu auf Swift-Entwickler-Blog.final
. Wenn die Vererbung wird notwendig sein, später auf die final-Modifizierer wird Sie daran erinnern, zu denken, dass das refactoring durch.Tolle Antwort. Interessant, wie ich erkennen, die eine Leistungssteigerung in meinem ganzen app. Ich hatte alle Klassen in mein Projekt erklärt-ohne die
final
Stichwort, da ich nicht Unterklasse fast jeder von denen, hinzufügen derfinal
keyword wirklich gab mir einen performance-boost.vielen Dank für die Swift-Entwickler-Blog link
Sie brauchen nicht
final
auf interne - Deklarationen, wenn Sie mit Ganzen Modul-Optimierung, abgeleitet wird (siehe die verlinkten Swift-Entwickler-Blog-post).InformationsquelleAutor totocaster
Lesen Sie mehr:
https://developer.apple.com/swift/blog/?id=27
InformationsquelleAutor Vlad Khambir
Final bedeutet, dass niemand kann Erben von dieser Klasse.
InformationsquelleAutor iamirzhan
Neben
final
Erklärung muss nicht überschrieben werden, auch hat eine bessere Leistung als gar keine Nutzungfinal
, weilfinal
deaktivieren der dynamischen dispatch zur Laufzeit die save-Laufzeit-overhead.InformationsquelleAutor William Hu
Anderen Antworten schon genügend Verständnis über das Schlüsselwort final. Ich will erklären, indem Sie einige Beispiel.
Betrachten Beispiel ohne
final
Stichwort.Im oben genannten code, die es erlauben, das überschreiben der Variable, es ist super Klasse. Während die Klasse mit dem Schlüsselwort final nicht erlauben. Siehe Beispiel weiter unten.
InformationsquelleAutor Hitesh Surani