Rapide | Héritage et remplacement
Salut tout le monde!
Dans cet article, je vais parler de l'héritage dans Swift.
Si vous souhaitez me soutenir, il y a trois étapes faciles : applaudissez, partagez et suivez-moi, merci d'avance !
Comme d'habitude, ma question typique; avez-vous lu mes articles précédents? Si non, alors les voici :
- Choses importantes que chaque développeur iOS devrait savoir + Conseils de réservation
- Qu'est-ce que la programmation réactive | RxSwift + livres bonus
- Asynchrone/attente dans Swift | Qu'est-ce que c'est?!
- Qu'est-ce que SwiftLint ? — Le voyage vers le Clean Code
- Grand Central Dispatch & DispatchQueue à Swift
- C'est quoi SOLIDE ?! — Principe Bonus DRY
- (Possible) Questions et réponses d'entrevue pour tous les développeurs iOS juniors
- 13 commandes Git dont vous aurez besoin dans votre carrière — Aide-mémoire
- Qu'est-ce que le cycle de vie de ViewController ? — Développement iOS avec Swift
- Comment devenir développeur ? || Pourquoi ne devriez-vous PAS devenir ?
- Types de référence et de valeur dans Swift - De quoi s'agit-il ?
- Tests unitaires | Rapide
- Codable — Codable/Décodable
- 7 sources pour apprendre Swift
- Qu'est-ce qu'Objective-C ?
- 14 profils que vous DEVEZ suivre si vous voulez devenir un développeur iOS.
- Comment prendre en charge le "mode sombre" dans une application iOS - Swift, SwiftUI et Objective-C
- 15 questions d'entretien qui vous seront posées en tant que développeur iOS
- Comment créer un chatbot IA avec Swift ? — Merci pour les 100 abonnés !
Hériter signifie littéralement hériter. Dans les langages de programmation orientés objet, l'héritage signifie produire une autre classe avec les mêmes propriétés à partir d'une classe. Trois points importants :
- Lorsqu'une classe hérite d'une autre, la classe héritante est appelée sous- classe.
- La classe dont il hérite est appelée sa superclasse .
- Toute classe qui n'hérite pas d'une autre classe est appelée classe de base .
Primordial
Les sous-classes ont toutes les caractéristiques des superclasses dont elles sont dérivées. Toutes les propriétés, méthodes, etc. de la superclasse sont également disponibles dans la sous-classe. Dans certains cas, il peut être nécessaire de modifier une propriété d'une sous-classe et de la rendre spéciale pour la sous-classe. De telles situations sont dites prédominantes. Si nous examinons l'exemple ci-dessous, la méthode defineTheVehicle de la classe Vehicle est surchargée dans la classe Train. Maintenant, la méthode defineTheVehicle de la classe Train est telle qu'elle est écrite dans la classe Train. Ce remplacement n'affecte pas la méthode de la classe Vehicle ( superclasse ).
Accéder aux scripts de propriété, de méthode et de sous-classe de la super classe
Nous utilisons « super » pour le définir :
pour les méthodes : super.method()
pour la propriété : super.someProperty
pour les sous-scripts : super[someIndex].
Ici, le mot super fait référence à la superclasse.
Comment empêcher le dépassement
Si nous définissons une variable, une fonction, une classe, etc. avec le mot "final" , cela signifie que nous les empêchons de se substituer.
Exemple:
final var
final func { }
final class { }
static func {} //Cannot be overriden
final class func {} //Cannot be overriden
class func {} //Can be overriden
Exemples de codes
Dans cette partie, vous allez voir des exemples de code liés au sujet de cet article.
class Vehicle {
// Properties, we define them as variable because they will change
var numberOfWheels: Int
var maxPassenger: Int
// Method
func defineTheVehicle() -> String {
return "It has \(numberOfWheels) wheels; Can take maximum \(maxPassenger) number of passengers."
}
// Initializer
init() {
numberOfWheels = 0
maxPassenger = 1
}
}
//The class of Motorcycle is subclass of the (super)class Vehicle.
class Motorcycle: Vehicle {
init() {
//We call our init from our superclass (Vehicle)
super.init()
numberOfWheels = 2
}
}
//The class of Train is subclass of the (super)class Vehicle.
class Train: Vehicle {
var speed: Double = 0.0
init() {
//We call our init from our superclass (Vehicle)
super.init()
maxPassenger = 200 //random number :D
numberOfWheels = 20 //random number :D
}
//Here we override the defineTheVehicle function.
override func defineTheVehicle() -> String {
return super.defineTheVehicle() + "; "
+ "\(speed) km/h"
}
}
En gros, c'est tout de mon côté. J'espère que cet article vous a aidé un peu. Si vous aimez mes articles, si vous pensez qu'ils sont utiles, vous pouvez cliquer sur le bouton "Suivre" et partager des articles pour toucher plus de personnes. :)
Souhaitez-vous me soutenir? Vous avez deux options : applaudir, commenter, partager, suivre ou m'acheter un café .
N'oubliez pas de nous suivre sur twitter .
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































