Remplacer la fonction
Je prends un iOS cours en ligne offert par une université célèbre. Je ne comprends pas pourquoi le code suivant utilisation override
et c'est légal.
-
Selon la définition officielle, nous utilisons
override
pour remplacer superclasse " des méthodes. Où est la sous-classe de super-classe dans le code suivant? -
Ce qui a été remplacer et par quoi?
public override var description: String { return "\(url.absoluteString) (aspect ratio = \(aspectRatio))" }
- Pouvez-vous montrer le
Class
où vous l'écriture de cette fonction? - Vous pouvez "passer outre" méthodes afin de fournir un comportement personnalisé.
Vous devez vous connecter pour publier un commentaire.
Voici un exemple:
Votre classe d'origine:
Votre sous-classe:
Dans le
Runner
classe, il y a unoverride
avec la fonctionwalk
. C'est parce qu'elle est une sous-classe dePerson
, et il peut remplacer Personne de marche de la fonction. Donc, Si vous instanciez unRunner
:Et que vous appelez le
walk
fonction:Alors qui va appeler la fonction surchargée que vous avez écrit dans le
Runner
classe. Si vous n'avez pas le remplacer, il va appeler lewalk
fonction que vous avez écrit dansPerson
.C'est correct. La super-classe dans votre exemple, c'est la classe qui contient le remplacement de
description
de la propriété. Cela pourrait êtreNSObject
, une autre classe qui en dérive (directement ou indirectement) ou de la classe sans rapport avecNSObject
qui avar description: String
propriété.description
est une propriété que Swift classes ont souvent comme un moyen de se présenter comme une chaîne de caractères, parce quedescription
fournit la conformité auxCustomStringConvertible
protocole. Ceci est similaire àtoString()
méthode de Java, et àstr()
méthode de Python.La mise en œuvre de la propriété est ce qui est remplacée. La classe qui a la mise en œuvre de la primauté de l'.