Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java-methode overschrijven

Java-methode overschrijven

In deze tutorial zullen we leren over het overschrijven van methoden in Java met behulp van voorbeelden.

In de laatste tutorial hebben we geleerd over overerving. Overerving is een OOP-eigenschap waarmee we een nieuwe klasse (subklasse) kunnen afleiden van een bestaande klasse (superklasse). De subklasse erft de attributen en methoden van de superklasse.

Als nu dezelfde methode is gedefinieerd in zowel de superklasse als de subklasse, dan overschrijft de methode van de subklasse de methode van de superklasse. Dit staat bekend als het overschrijven van methoden.


Voorbeeld 1:Methode overschrijven

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   @Override
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Uitvoer :

I am a dog.

In het bovenstaande programma is de displayInfo() methode is aanwezig in zowel de Animal superklasse en de Hond subklasse.

Wanneer we displayInfo() call bellen met behulp van de d1 object (object van de subklasse), de methode binnen de subklasse Hond wordt genoemd. De displayInfo() methode van de subklasse heeft voorrang op dezelfde methode van de superklasse.

Let op het gebruik van de @Override annotatie in ons voorbeeld. In Java zijn annotaties de metadata die we hebben gebruikt om informatie aan de compiler te verstrekken. Hier, de @Override annotatie specificeert de compiler dat de methode na deze annotatie de methode van de superklasse overschrijft.

Het is niet verplicht om @Override . te gebruiken . Wanneer we dit echter gebruiken, moet de methode alle regels van overschrijven volgen. Anders zal de compiler een fout genereren.


Java overschrijvende regels

  • Zowel de superklasse als de subklasse moeten dezelfde methodenaam, hetzelfde retourtype en dezelfde parameterlijst hebben.
  • We kunnen de methode die is gedeclareerd als final niet negeren en static .
  • We moeten de abstracte methoden van de superklasse altijd overschrijven (wordt besproken in latere tutorials).

super Trefwoord in Java Overschrijven

Een veel voorkomende vraag die zich voordoet bij het overschrijven in Java is:

Kunnen we na het overschrijven toegang krijgen tot de methode van de superklasse?

Welnu, het antwoord is Ja . Om toegang te krijgen tot de methode van de superklasse vanuit de subklasse, gebruiken we de super zoekwoord.

Voorbeeld 2:gebruik van superzoekwoord

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      super.displayInfo();
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Uitvoer :

I am an animal.
I am a dog.

In het bovenstaande voorbeeld is de subklasse Hond overschrijft de methode displayInfo() van de superklasse Dier .

Wanneer we de methode displayInfo() . aanroepen met behulp van de d1 object van de Hond subklasse, de methode binnen de Hond subklasse wordt genoemd; de methode binnen de superklasse wordt niet aangeroepen.

Binnen displayInfo() van de Hond subklasse, we hebben super.displayInfo() . gebruikt om displayInfo() . te bellen van de superklasse.


Het is belangrijk op te merken dat constructors in Java niet worden geërfd. Daarom bestaat er niet zoiets als een constructor-override in Java.

We kunnen echter de constructor van de superklasse aanroepen vanuit zijn subklassen. Daarvoor gebruiken we super() . Ga voor meer informatie naar Java-superzoekwoord.


Toegangsspecificaties in methodeoverschrijving

Dezelfde methode gedeclareerd in de superklasse en zijn subklassen kan verschillende toegangsspecificaties hebben. Er is echter een beperking.

We kunnen alleen die toegangsspecificaties gebruiken in subklassen die grotere toegang bieden dan de toegangsspecificatie van de superklasse. Bijvoorbeeld,

Stel, een methode myClass() in de superklasse wordt verklaard protected . Vervolgens dezelfde methode myClass() in de subklasse kan ofwel public . zijn of protected , maar niet private .

Voorbeeld 3:Toegangsspecificatie bij overschrijven

class Animal {
   protected void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Uitvoer :

I am a dog.

In het bovenstaande voorbeeld is de subklasse Hond overschrijft de methode displayInfo() van de superklasse Dier .

Telkens wanneer we displayInfo() call bellen met behulp van de d1 (object van de subklasse), wordt de methode binnen de subklasse aangeroepen.

Merk op dat de displayInfo() wordt verklaard protected in de Dier superklasse. Dezelfde methode heeft de public toegangsspecificatie in de Hond subklasse. Dit is mogelijk omdat de public biedt grotere toegang dan de protected .


Abstracte methoden overschrijven

In Java worden abstracte klassen gemaakt om de superklasse van andere klassen te zijn. En als een klasse een abstracte methode bevat, is het verplicht om deze te overschrijven.

In latere tutorials zullen we meer leren over abstracte klassen en het overschrijven van abstracte methoden.


Java

  1. Java-operators
  2. Java proberen-met-bronnen
  3. Java-annotaties
  4. Java-annotatietypen
  5. String Length() Methode in Java:Hoe te vinden met Voorbeeld
  6. Java String indexOf() Methode met Substring &Voorbeelden
  7. Java String charAt() Methode met Voorbeeld
  8. Java String CompareTo()-methode:hoe te gebruiken met voorbeelden
  9. Java String bevat() Methode | Controleer subtekenreeks met voorbeeld
  10. Java String endsWith() Methode met voorbeeld
  11. Java String Replace(), ReplaceAll() en ReplaceFirst() methode