polymorphism.py

Created by joelkouakou2080

Created on February 10, 2023

3.17 KB


Ce programme définit une classe
de base appelée Animal avec une
méthode appelée animalSound().
Les classes Pig et Dog étendent
la classe Animal et surchargent
la méthode animalSound() pour 
renvoyer des chaînes différentes.


Dans la méthode main(), nous
créons trois objets en utilisant
les références de la classe de
base Animal. Les objets sont 
créés en utilisant les sous-types
Pig et Dog, et la méthode animalSound()
est appelée pour chaque objet.
Les sorties sont les suivantes :

class Animal {
    public void animalSound() {
        System.out.println("L'animal fait un son");
    }
}

class Pig extends Animal {
    public void animalSound() {
        System.out.println("Grognement de cochon");
    }
}

class Dog extends Animal {
    public void animalSound() {
        System.out.println("Aboiement de chien");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();  // Animal référence
        Animal myPig = new Pig();  // Pig est un sous-type d'Animal
        Animal myDog = new Dog();  // Dog est un sous-type d'Animal
        
        myAnimal.animalSound();
        myPig.animalSound();
        myDog.animalSound();
    }
}


En Java, le mot clé this est
utilisé pour faire référence
à l'objet courant dans lequel
une méthode ou un constructeur
est appelé. Par exemple, si 
vous avez une classe Animal 
avec des attributs name et 
type, vous pouvez utiliser 
this pour faire référence à
ces attributs dans les méthodes
de la classe :
  
class Animal {
    String name;
    String type;
    
    public Animal(String name, String type) {
        this.name = name;
        this.type = type;
    }
    
    public void printDetails() {
        System.out.println("Nom : " + this.name);
        System.out.println("Type : " + this.type);
    }
}


Le programme suivant définit une
classe Animal avec deux constructeurs.
Le premier constructeur 
Animal(String name) utilise
this pour appeler le deuxième
constructeur Animal(String name, 
String type) avec une valeur
par défaut pour le type de 
l'animal. La méthode printDetails()
utilise this pour faire référence
aux attributs name et type de 
l'objet courant.

Dans la méthode main(), nous
créons deux objets Animal en
utilisant les deux constructeurs
différents. Nous appelons ensuite
la méthode printDetails() pour 
chaque objet pour afficher les
détails de l'animal.

La sortie de ce programme sera
la suivante :
  
  Nom : Piggy
  Type : Inconnu

  Nom : Doggy
  Type : Chien


class Animal {
    private String name;
    private String type;
    
    public Animal(String name) {
        this(name, "Inconnu");
    }
    
    public Animal(String name, String type) {
        this.name = name;
        this.type = type;
    }
    
    public void printDetails() {
        System.out.println("Nom : " + this.name);
        System.out.println("Type : " + this.type);
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Animal("Piggy");
        Animal animal2 = new Animal("Doggy", "Chien");
        
        animal1.printDetails();
        System.out.println();
        animal2.printDetails();
    }
}

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.