DatorerProgrammering

Element av Java objektmodell: en abstrakt klass, ett gränssnitt

Den huvudsakliga idén med abstrakt klass finns i följande teser: ibland kräver ingen matlagning klasser och i "våt" form. Sådana ämnen kan inte användas direkt (instansiera).

Vad är en abstrakt klass i Java

Överväga ett annat exempel. Det finns en Java abstrakt klass Kalender i java.util paketet. Det inte genomför en viss kalender som används till exempel i västra och östra Europa, Kina, Nordkorea, Thailand och så vidare D. Men det har många användbara funktioner, som att lägga ett par dagar till ett visst datum. Dessa funktioner krävs för alla kalender genomförandet. Det är omöjligt att producera en kopia av abstrakt klass.

Abstrakta klasser, abstrakta Java metoder

Anta att du vill utveckla flera grafiska element, exempelvis geometriska former: .. en cirkel, rektangel, stjärna, etc. Och det finns en behållare som drar dem. Varje komponent av utseendet är olika, så lämplig metod (även om det kallas färg) implementeras på olika sätt. Dock har varje komponent många likheter: .. Siffran bör ingå i lådan kan ha en färg för att vara synliga och osynliga, etc. Med andra ord, måste du skapa en förälder klass för alla dessa figurer, där varje komponent kommer att ärva de allmänna egenskaperna. Men hur färgen metoden? När allt kommer omkring är den överordnade klassen ingen visuell representation. Om du deklarerar en färg metod i varje klass oberoende, är det nödvändigt att analysera vad komponent bearbetas och sedan utföra rösterna. Därför måste metoden förklaras abstrakt i den överordnade klassen: den metod som titeln utan en kropp. En kropp av varje härledd klass kommer att beskriva sin egen. I Java, en abstrakt klass kan komma in i abstrakta metoder.

Om en klass har abstrakta metoder är klassen abstrakt. Innan ordet klassen sätta nyckelordet abstract, titeln på metoden - också. Efter rubriken på en sådan metod är nödvändigt att sätta ett semikolon. I Java kan en abstrakt klass inte framställa exemplar. Om vi vill förbjuda deras skapande, även om det inte finns några abstrakta metoder för klassen, kan klassen förklaras abstrakt. Men om klassen har åtminstone en abstrakt metod måste klassen vara abstrakta. Det är omöjligt att klassen var och abstrakt är, och sista, och metoden också. Metoden kan inte vara abstrakt, privat, statisk, infödd. Underklass man kunde förklara icke-abstrakta och initiera, måste de genomföra alla abstrakta metoder för föräldern. Klassen själv kan använda sina abstrakta metoder.

exempel:

  • abstrakt klass AClass {
  • offentliga abstrakt void metoden (int a) ;
  • }
  • klass BClass sträcker AClass {
  • public void metoden (int a) {
  • // kropp
  • }

Tillåtna variabler som abstrakt klass. De kan hänvisa till en icke-abstrakt barn i den klassen eller vara noll.

Gränssnitt i Java - ett alternativ till multipelt arv

I Java finns det inget multipelt arv, för då finns det vissa problem. En klass kan inte ärva från flera klasser. Men han kan implementera flera gränssnitt.

Java-gränssnitt och abstrakta klasser - begreppen är liknande, men inte identiska. Gränssnittet kan förklaras som offentliga, då den är tillgänglig för alla, eller så kan du utelämna allmänheten modifierings, då gränssnittet är endast tillgänglig inom förpackningen. Abstract sökord krävs inte, eftersom gränssnittet och så är abstrakt, men du kan ange.

Ett gränssnitt deklaration

Det börjar med en rubrik, och kan först gå till sökordet allmänheten, då - word-gränssnitt. Sedan kan det finnas ett ord sträcker och överföringsgränssnitt, som ärvt denna. Det är inte tillåtet att upprepa, och det är omöjligt att bilda en cyklisk förhållande av arvet relation. Sedan kommer gränsytekroppen, innesluten i klammerparenteser. I kroppen av de gränssnittselement deklareras: Fältkonstanter och abstrakta metoder. Alla fält är public final static - alla dessa modifierare är inte nödvändiga. Alla metoder anses vara offentliga abstrakt - dessa modifierare också kan specificeras. Nu, tillräckligt sägs om skillnaden mellan en abstrakt klass från Java-gränssnittet.

  • public interface AI sträcker B, C, D {
  • // kropp
  • }

För att deklarera en klass gränssnitt arvinge, behöver använda sökord redskap:

  • klass AClass implementerar BI, Cl, DI {}

Det vill säga, om det efter klassdeklarationen implementerar angivna gränssnittet namn, dess klass implementerar. Arvingar denna klass får dess beståndsdelar, så att de också sälja den.

Variabler för ett gränssnitt typ är också tillåtet. De kan hänvisa till en typ av den klass som implementerar detta gränssnitt eller null. Sådana variabler har alla delar av klassen Object, eftersom objekten genereras av klasser, och de i sin tur härstammar från klassen Object.

I den här artikeln, vi diskuterade vissa delar av Java objektmodell - abstrakta klasser, abstract metoder gränssnitt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sv.atomiyme.com. Theme powered by WordPress.