753 Shares 4083 views

Elementi di modello a oggetti Java: una classe astratta, un'interfaccia

L'idea principale della classe astratta è contenuta nei seguenti tesi: a volte non richiede corsi di cucina, e in forma "umida". Tali spazi non possono essere utilizzati direttamente (un'istanza).

Che cosa è una classe astratta in Java

Consideriamo un altro esempio. C'è un Java classe astratta del calendario in package java.util. Non implementare un calendario preciso, che viene utilizzato, ad esempio, in Europa occidentale e orientale, Cina, Corea del Nord, Thailandia, ecc ma ha molte caratteristiche utili, come ad esempio l'aggiunta di un paio di giorni a una data specifica: .. Queste funzioni sono necessari per qualsiasi il calendario di attuazione. E 'impossibile produrre una copia della classe astratta.

classi astratte, metodi Java astratti

Si supponga di voler sviluppare più elementi grafici, ad esempio, forme geometriche: .. Un cerchio, rettangolo, stelle, ecc e v'è un contenitore che li attira. Ogni componente della comparsa è diverso, quindi il metodo appropriato (anche se viene chiamato vernice) è implementato in modo diverso. Tuttavia, ogni componente ha molte similitudini: .. La cifra dovrebbe essere incluso nella confezione possono avere un colore ad essere visibile e invisibile, ecc In altre parole, è necessario creare una classe genitore per tutte queste figure, in cui ogni componente erediterà le proprietà generali. Ma per quanto riguarda il metodo di vernice? Dopo tutto, la classe padre non è la rappresentazione visiva. Se si dichiara un metodo di vernice in ogni classe in modo indipendente, sarà necessario analizzare quale componente viene elaborato, e quindi eseguire il cast. Pertanto, il metodo deve essere dichiarato abstract nella classe padre: il metodo impostato il titolo senza un corpo. Un corpo di ogni classe derivata descriverà la sua. In Java, una classe astratta può entrare i metodi astratti.

Se una classe ha metodi astratti, la classe è astratta. Prima della classe parola ha messo la parola chiave abstract, il titolo del metodo – anche. Dopo il titolo di un tale metodo è necessario mettere un punto e virgola. In Java, una classe astratta non può produrre copie. Se vogliamo vietare loro creazione, anche se non ci sono metodi astratti della classe, la classe può essere dichiarata astratta. Ma se la classe ha almeno un metodo astratto, la classe deve essere astratta. E 'impossibile classe era e astratto è, e finale, e il metodo troppo. Il metodo non può essere astratto, privato, statica, nativo. Per creare una sottoclasse si potrebbe dichiarare non astratta e istanziare, essi devono implementare tutti i metodi astratti della controllante. La classe stessa può utilizzare i suoi metodi astratti.

esempio:

  • classe astratta AClass {
  • pubblica metodo vuoto astratto (int a) ;
  • }
  • Classe BClass estende AClass {
  • metodo public void (int a) {
  • // corpo
  • }

variabili ammessi come la classe astratta. Si può fare riferimento a un bambino non astratta di quella classe o essere nullo.

Interfacce in Java – in alternativa alla ereditarietà multipla

In Java, non c'è ereditarietà multipla, perché poi ci sono alcuni problemi. Una classe non può ereditare da più classi. Ma può implementare più interfacce.

interfacce Java e classi astratte – i concetti sono simili, ma non identici. L'interfaccia può essere dichiarato come pubblico, allora è a disposizione di tutti, oppure si può omettere il modificatore di pubblico, quindi l'interfaccia è disponibile solo all'interno del suo pacchetto. Estratto parola chiave non è necessaria, perché l'interfaccia e così è astratta, ma è possibile specificare.

Una dichiarazione di interfaccia

Si inizia con un colpo di testa, e può andare prima al pubblico parola chiave, quindi – Interfaccia parola. Allora non ci può essere una parola estende e interfacce di trasferimento, da cui ereditato questo. Non è consentito ripetere, ed è impossibile formare un rapporto ciclico della relazione di ereditarietà. Poi viene il corpo dell'interfaccia, racchiuso tra parentesi graffe. Nel corpo degli elementi dell'interfaccia sono dichiarati: le costanti campo e metodi astratti. Tutti i campi sono statici public final – tutti questi modificatori non sono necessari. Tutti i metodi sono considerati astratti pubblico – questi modificatori possono anche essere specificati. Ora, si dice abbastanza circa la differenza tra una classe astratta dalla interfaccia Java.

  • interfaccia pubblica AI estende B, C, D {
  • // corpo
  • }

Per dichiarare un'interfaccia erede di classe, è necessario utilizzare la parola chiave implements:

  • Classe AClass implementa BI, CI, DI {}

Cioè, se dopo la dichiarazione della classe implementa nome dell'interfaccia specificato, i suoi strumenti di classe. Eredi di questa classe ottiene i suoi elementi, in modo che anche vendono.

è inoltre consentito variabili di un tipo di interfaccia. Essi possono riferirsi ad un tipo di classe che implementa questa interfaccia, o nullo. Tali variabili hanno tutti gli elementi della classe Object, perché gli oggetti sono generati dalle classi, e, a sua volta, derivano dalla classe Object.

In questo articolo, abbiamo discusso alcuni elementi del modello a oggetti di Java – classi astratte, astratto interfaccia metodi.