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

Overerving in Java OOP's:leer alle typen met een voorbeeld

Wat is overerving?

Overerving is een mechanisme waarbij een klasse het eigendom van een andere klasse verwerft. Een kind erft bijvoorbeeld de eigenschappen van zijn/haar ouders. Met overerving kunnen we de velden en methoden van de bestaande klasse hergebruiken. Vandaar dat overerving herbruikbaarheid vergemakkelijkt en is een belangrijk concept van OOP's.

In deze tutorial leer je-

  • Soorten overerving
  • Overerving in Java
  • Voorbeeld van Java-erfenis
  • Superzoekwoord
  • Leer overerving in OOP's met voorbeeld

Soorten overerving

Hier zijn de verschillende soorten overerving in Java:

Enkele erfenis:

In Single Inheritance breidt één klasse een andere klasse uit (slechts één klasse).

In het bovenstaande diagram breidt klasse B alleen klasse A uit. Klasse A is een superklasse en klasse B is een subklasse.

Meerdere overerving:

Multiple Inheritance is een van de overervingen in Java-typen waarbij één klasse meer dan één klasse uitbreidt. Java ondersteunt geen meervoudige overerving.

Volgens het bovenstaande diagram breidt Klasse C zowel Klasse A als Klasse B uit.

Overerving op meerdere niveaus:

In Multilevel Inheritance kan één klasse overerven van een afgeleide klasse. Daarom wordt de afgeleide klasse de basisklasse voor de nieuwe klasse.

Zoals weergegeven in het diagram is Klasse C een subklasse van B en B is een subklasse van Klasse A.

Hiërarchische erfenis:

In hiërarchische overerving wordt één klasse geërfd door vele subklassen.

Zoals in het bovenstaande voorbeeld, erven klasse B, C en D dezelfde klasse A.

Hybride overerving:

Hybride overerving is een van de overervingstypen in Java, een combinatie van enkele en meervoudige overerving.

Zoals in het bovenstaande voorbeeld, worden alle openbare en beschermde leden van Klasse A geërfd in Klasse D, eerst via Klasse B en ten tweede via Klasse C.

Opmerking: Java ondersteunt geen hybride/meervoudige overerving

Overerving in Java

Java-erfenis is een mechanisme waarbij een klasse het eigendom van een andere klasse verwerft. Als er in Java een "Is-A"-relatie bestaat tussen twee klassen, gebruiken we Inheritance. De bovenliggende klasse wordt een superklasse genoemd en de overgeërfde klasse wordt een subklasse genoemd. Het trefwoord extends wordt gebruikt door de subklasse om de kenmerken van de superklasse te erven.

Overerving is belangrijk omdat het leidt tot herbruikbaarheid van code.

Java-overervingssyntaxis:

class subClass extends superClass  
{  
   //methods and fields  
}  

Voorbeeld van Java-erfenis

Hier is een voorbeeld van overerving in Java:

Voorbeeld van Java-erfenis

class Doctor {
 void Doctor_Details() {
  System.out.println("Doctor Details...");
 }
}

class Surgeon extends Doctor {
 void Surgeon_Details() {
  System.out.println("Surgen Detail...");
 }
}

public class Hospital {
 public static void main(String args[]) {
  Surgeon s = new Surgeon();
  s.Doctor_Details();
  s.Surgeon_Details();
 }
}

Superzoekwoord

Het super-zoekwoord is vergelijkbaar met het zoekwoord 'dit'.

Het sleutelwoord super kan worden gebruikt om toegang te krijgen tot elk gegevenslid of elke methode van de bovenliggende klasse.

Super trefwoord kan worden gebruikt op variabele-, methode- en constructorniveau.

Syntaxis:

super.<method-name>();

Leer overerving in OOP's met voorbeeld

Overweeg dezelfde banktoepassing als in het vorige voorbeeld.

Het is de bedoeling dat we twee verschillende soorten rekeningen openen, een om te sparen en een om te controleren (ook bekend als huidig).

Laten we vergelijken en bestuderen hoe we codering kunnen benaderen vanuit een gestructureerd en objectgeoriënteerd programmeerperspectief.

Structurele aanpak :Bij gestructureerd programmeren zullen we twee functies creëren –

  1. Eén om in te trekken
  2. En de andere voor stortingsactie.

Aangezien de werking van deze functies hetzelfde blijft voor alle accounts.

De aanpak van OOP :Tijdens het gebruik van de OOPs-programmeerbenadering. We zouden twee klassen maken.

  • Elk met implementatie van de stortings- en opnamefuncties.
  • Dit zal extra werk overbodig maken.

Verzoek wijzigen in software

Nu is er een wijziging in de specificatie van de vereisten voor iets dat zo gebruikelijk is in de software-industrie. Het is de bedoeling dat u een met functionaliteit bevoorrechte bankrekening toevoegt met debetstandfaciliteit. Ter informatie:rood staan ​​is een faciliteit waarbij u een bedrag kunt opnemen dat hoger is dan het beschikbare saldo op uw rekening.

Structurele aanpak: Met behulp van een functionele benadering moet ik mijn terugtrekkingsfunctie aanpassen, die al is getest en op de basislijn is gezet. En het toevoegen van een methode zoals hieronder zorgt voor nieuwe vereisten.

De aanpak van OOP: Met behulp van de aanpak van OOP hoeft u alleen maar een nieuwe klasse te schrijven met een unieke implementatie van de terugtrekkingsfunctie. We hebben het geteste stukje code nooit aangeraakt.

Nog een wijzigingsverzoek

Wat als de eis verder verandert? Voeg graag een creditcardaccount toe met zijn eigen unieke stortingsvereisten.

Structurele aanpak: Bij een structurele aanpak moet u het geteste stuk stortingscode opnieuw wijzigen.

De aanpak van OOP :Maar als u een objectgeoriënteerde benadering gebruikt, maakt u gewoon een nieuwe klasse met zijn unieke implementatie van de stortingsmethode (rood gemarkeerd in de onderstaande afbeelding).

Dus hoewel de structurele programmering in eerste instantie een gemakkelijke benadering lijkt, wint OOP op lange termijn.

Voordelen van overerving in OOP's

Maar je zou kunnen beweren dat je in alle klassen een herhaald stuk code hebt.

Om dit te verhelpen, maakt u een bovenliggende klasse aan, zegt u 'account' en implementeert u dezelfde functie van storten en opnemen. En zorg ervoor dat kindklassen de "account" -klasse overnemen. Zodat ze toegang hebben tot opname- en stortingsfuncties in de accountklasse.

De functies hoeven niet afzonderlijk te worden geïmplementeerd. Dit is Overerving in Java. .


Java

  1. Java-erfenis
  2. Wat is interface in C# met voorbeeld?
  3. OOPs-concepten in Java | Wat is, Basis met voorbeelden
  4. Wat is abstractie in OOP's? Java abstracte klasse en methode
  5. Inkapseling in Java OOP's met voorbeeld
  6. String Length() Methode in Java:Hoe te vinden met Voorbeeld
  7. Java String charAt() Methode met Voorbeeld
  8. Java String bevat() Methode | Controleer subtekenreeks met voorbeeld
  9. Java String endsWith() Methode met voorbeeld
  10. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  11. Invoegsorteeralgoritme in Java met programmavoorbeeld