Partage
  • Partager sur Facebook
  • Partager sur Twitter

Approfondissez Swift avec la POO

Question au sujet d'un exercice

Sujet résolu
    11 juillet 2018 à 13:52:09

    Bonjour à tous !

    Comme vous pouvez le voir dans le titre, je suis actuellement le cours  "Approfondissez Swift avec la POO" d'Ambroise Collon. Cependant, je suis bloqué à l'exercice CodeVolve du chapitre "surchargez vos méthodes". J'ai tout essayé et il n'y a rien à faire, ça ne marche pas. Voici le code : 

    class Personne {
    var prenom: String
    var nom: String
    var age = 0
    var sexe: Sexe = .femme
    init(prenom: String, nom: String) {
    self.prenom = prenom
    self.nom = nom
    }
    func sePresenter() -> String {
    return "Bonjour, je m'appelle \(prenom) \(nom)"
    }
    func feterSonAnniversaire() {
    age += 1
    }
    static func creerJamesBond() -> Personne {
    let bond = Personne(prenom: "James", nom: "Bond")
    bond.age = 40
    return bond
    }
    }
    enum Sexe {
    case homme, femme
    }
    class Developpeur: Personne {
    var ordinateur = "Mac"
    init(){
    super.init
    super.sePresenter()
    override func sePresenter() -> String {
    return("et je suis développeur !")

    }
    }
    class Traducteur: Personne {
    var languesConnues = [String]()
    init(){
    super.init
    override func sePresenter() -> String{
    return "Hello , my name is \(prenom) \(nom)"
    }
    }
    }
    class Athlete: Personne {
    var recordDu100m = 10.0
    }


    De même, j'ai recopié dans le Playground le même bout de code que dans le cours et j'ai une erreur 'override' can only be specified on class members' , je parle de ce morceau de code :

    class SchoolBus: Bus {

        var schoolName = ""

        init () {

            override func drive(road: Road) {

                for section in road.sections {

                    switch section.type {

                    case .plain:

                        moveForward()

                    case .home:

                        stop()

                        moveForward()

                    case .school:

                        stop()

                    }

                }

            }

        }

    }

    Pourriez-vous m'éclairer sur ces deux points svp ? Merci d'avance et bonne journée à vous ;) !
    • Partager sur Facebook
    • Partager sur Twitter
      24 février 2022 à 10:37:57

      Hello LouisJean4,

      Tu as clôturé le sujet, as-tu finalement réussi l'exercice ?

      Pour que ça passe, il faut simplement faire un override, pour les fonctions :

      class Developpeur: Personne {
         var ordinateur = "Mac"
         
         override func sePresenter() -> String {
            return "Bonjour, je m'appelle \(prenom)\(nom) et je suis développeur !"
         }
      }
      
      class Traducteur: Personne {
         var languesConnues = [String]()
         
         override func sePresenter() -> String {
            return "Hello, my name is \(prenom)\(nom)"
         }
      }

      -
      Edité par Thomas Heinis 24 février 2022 à 10:39:26

      • Partager sur Facebook
      • Partager sur Twitter

      Approfondissez Swift avec la POO

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown