Rapide | Héritage et remplacement

Jan 06 2023
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 type ; avez-vous lu mes articles précédents? Si non, alors les voici : Hériter signifie littéralement hériter.

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 :

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 :

  1. Lorsqu'une classe hérite d'une autre, la classe héritante est appelée sous- classe.
  2. La classe dont il hérite est appelée sa superclasse .
  3. 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 .