Java Polimorfisme


Java Polimorfisme

Polimorfisme beteken "baie vorme", en dit kom voor wanneer ons baie klasse het wat deur oorerwing aan mekaar verwant is.

Soos ons in die vorige hoofstuk gespesifiseer het; Oorerwing laat ons eienskappe en metodes van 'n ander klas erf. Polimorfisme gebruik daardie metodes om verskillende take uit te voer. Dit stel ons in staat om 'n enkele aksie op verskillende maniere uit te voer.

Dink byvoorbeeld aan 'n superklas genaamd Animalwat 'n metode genaamd het animalSound(). Subklasse van diere kan varke, katte, honde, voëls wees - en hulle het ook hul eie implementering van 'n diereklank (die vark-oinks, en die kat miaau, ens.):

Voorbeeld

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

Onthou uit die Erfenis hoofstuk dat ons die extendssleutelwoord gebruik om van 'n klas te erf.

Nou kan ons skep Pigen Dogvoorwerpe en die animalSound()metode op albei van hulle noem:

Voorbeeld

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

class Main {
  public static void main(String[] args) {
    Animal myAnimal = new Animal();  // Create a Animal object
    Animal myPig = new Pig();  // Create a Pig object
    Animal myDog = new Dog();  // Create a Dog object
    myAnimal.animalSound();
    myPig.animalSound();
    myDog.animalSound();
  }
}

Waarom en wanneer om "oorerwing" en "polimorfisme" te gebruik?

- Dit is nuttig vir kode herbruikbaarheid: hergebruik eienskappe en metodes van 'n bestaande klas wanneer jy 'n nuwe klas skep.