772 Shares 4035 views

classe astratta e il metodo: la descrizione, caratteristiche e funzionalità. Ciò che è diverso dall'interfaccia classe astratta

Chiunque abbia un po 'di conoscenza in programmazione, chiedendo circa il motivo per cui ci sono classi base astratte. Qual è il loro scopo? Come creare una classe astratta? Quali sono i vantaggi che offrono in pratica? Perché sono necessari nella programmazione e alcune caratteristiche della loro attuazione dovrebbero tener conto?

classi astratte

Quindi, in programmazione chiamato codice unità in base al quale non possono essere creati gli oggetti. Si fa notare che questa classe di successori non può essere astratta. Pertanto, la creazione di oggetti basati su di essi è del tutto possibile. Se consideriamo l'esempio di Java, costruiamo un modello che possiamo descrivere i costruttori nella classe A. Ma per usarli, non possiamo. La via d'uscita da questa situazione è dichiarare qualsiasi riferimento variabile. E avete bisogno di essere chiaramente definiti in modo che punti a un oggetto della classe A. Questo è come si può fare? Questo ci aiuterà a portare. Va tenuto presente che la classe padre è sempre considerato di essere più versatile di discendente. In molti linguaggi di programmazione utilizzato per portare automaticamente. Ma se non c'è fiducia in presenza di un tale meccanismo, quindi è necessario fare riferimento in modo esplicito l'oggetto.

metodi astratti

Cosa sono? Estratto bando quei metodi che non sono implementati in questa classe. Così, dopo parentesi (che elenca gli argomenti ivi utilizzati) non danno un'apertura sagomata (dopodiché descrizione blocco situato del metodo), e solo una virgola. Così, in questo caso, non ci sono informazioni su ciò che fa. Qui la questione può essere chiesto: "E quale metodo senza implementazione?" Dopo tutto, egli non è da utilizzare! Naturalmente, in aula, dove è stato descritto, questo non è possibile. Ma se consideriamo la situazione dal punto di vista di un discendente, può essere chiamato. E sarà operare su una descrizione specifica disponibile in questa classe.

Caratteristiche metodi astratti

Ci sono limitazioni nel loro utilizzo. Consideriamo l'esempio del linguaggio di programmazione Java. V'è un obbligo, se la classe ha almeno uno di questi metodi, deve essere astratta. E in ogni caso è opportuno utilizzare una tale costruzione? Cerchiamo di capire con un esempio di classe gli animali domestici. Per cominciare a capire che non v'è alcun suono che vengono pubblicati. Pertanto, nella classe più generale non è impostato suono implementazione del metodo. Ma il corpo creato, che a parte tramite i blocchi per lui. E in seguito, durante la creazione di cane di classe, gatto o criceto sarà prescritto un metodo unico per esso, nel quadro della quale saranno comunicati a tutte le funzioni.

interfaccia

Nella programmazione creato molti strumenti il cui scopo – per aiutare le persone a fare un prodotto di buona qualità. E l'argomento in esame dovrebbe essere data a questo aspetto, e che tutti sanno differenza di una classe astratta dall'interfaccia. Così, l'ultima caratteristica è che non può essere le proprietà ei metodi non sono definiti corpo. Esaminando la differenza tra una classe astratta dall'interfaccia, dovrebbe soffermarsi di più su un particolare. Così, il primo è ereditata, mentre il secondo – si realizza. persona inesperta questo può sembrare insignificante. Ma il fatto è, che può essere ereditata una sola classe, e si rese conto – per quanto necessario. Questo è ciò che è diverso da l'interfaccia della classe astratta. Java è ancora le caratteristiche che può essere descritto solo astratto metodi pubblici e costanti statiche. Ma allo stesso interfacce possono anche essere ereditata. E 'necessario sottolineare che gli operatori utilizzati sono pubblici via pubblica.

ereditarietà multipla di interfacce

Questa funzione non è disponibile per le classi in molti linguaggi di programmazione (ad esempio, Java considerato da noi). Ciò è dovuto a una serie di problemi. Come tali ambiguità indicano che si verificano in successione. Questa è stata la ragione per l'introduzione di ereditarietà multipla dell'interfaccia. Questo risolve parzialmente i problemi esistenti, ma non tutti. Così, grazie ai principi di incapsulamento e polimorfismo, interfacce possono essere implementate con successo in diverse classi secondo vari metodi (anche se avranno lo stesso nome). Ma non dimenticare i problemi esistenti. Così, quando si lavora con più interfacce dovrà indicare sempre che abbiamo in mente. Inoltre, i problemi saranno e quando si tenta di lavorare con lo stesso nome in due modi – in questo caso, non saranno in grado di sfruttare. Pertanto, in tali casi è necessario prendersi cura della presenza delle vendite totali.

dati astratti

Questo concetto è la chiave per il programma. In questo caso, sotto l'astrazione di revisione indipendente e comprendere la separazione di interfaccia e implementazione. Diamo un'occhiata a un esempio. Abbiamo una televisione, che è un oggetto o di un modulo. È dotato di un'interfaccia. Come tali, essi sono i controlli, così come il suono e l'immagine. L'interfaccia più perfetta viene utilizzato, il più confortevole il televisore in uso. Siamo in grado di passare da un programma premendo un tasto qualsiasi. In questo caso, non c'è bisogno di pensare i processi fisici del televisore. Prendersi cura di loro specialisti, che raccolgono il dispositivo. Ci piacciono le persone sono solo interessati a proprietà. Tornando alla programmazione, possiamo dire che sono su un interfaccia e implementazione simile. Inoltre, se una persona è fiducioso nella sua conoscenza, egli può "rimuovere" coprire il nostro ipotetico TV e migliorarlo. Anche se questo può portare a successo locale, nella maggior parte dei casi, il risultato finale è negativo. Pertanto, nel divieto programmazione supportata di accesso e per nascondere i componenti interni di dati astratti. Il principio di questo meccanismo fornisce un modo per impedire lo spostamento intenzionale o accidentale dei componenti interni. E quando si parla di tipi di dati astratti, la media di una serie di una serie di operazioni che possono essere eseguite su di loro.

oggetti

Abbiamo già visto una classe astratta e l'interfaccia in generale e generale. dettagli la nostra conoscenza del Diamo ora. Per iniziare a prestare attenzione gli oggetti. Sotto di loro, in generale, consapevoli della realtà ambientale che esiste nello spazio e nel tempo. Ma identificare formalmente gli oggetti all'interno del programma è difficile (con il punto di vista filosofico e teorico). Pertanto, è dovuta alle sue proprietà. Come esempio, il seguente: Un oggetto può essere identificato in modo univoco (con un nome unico), è in un certo stato e utilizza un determinato modello di comportamento.

eredità

Poiché la programmazione si basa su una struttura gerarchica relazioni albero costruzione tra gli oggetti, la questione viene sollevata circa il fatto che le proprietà di base dei tipi di librerie di codice dei genitori sono stati trasferiti. Sotto eredità capire il rapporto quando qualcuno si ripete il comportamento e la struttura di qualcos'altro. Nella vita ordinaria, si può trovare ovunque. Tale è stata rinviata e programmazione elementi relativamente astratti. A titolo di confronto, il fatto che non esiste un tale organismo come un uccello. Questo è un nome astratto. Come una specifica istanza portare il tè, Nightingale o passero. Grazie all'eredità siamo in grado di utilizzare le librerie di classi, così come di sviluppare loro per un particolare programma. Questo strumento ci permette di creare nuovi oggetti, contemporaneamente aggiungendo o modificando le proprietà di un già creato. Erede ottiene tutti i metodi e campi del suo antenato e acquista i propri attributi, se necessario. A causa del fatto che vi sono elementi astratti e il principio del patrimonio, vi sono ampie possibilità di modifica all'interno della programmazione orientata agli oggetti. Inoltre, consente un approccio flessibile alla soluzione dei problemi. Quando si eredita una nuova classe di dati e delle funzioni trasferite.

polimorfismo

È necessario applicare la stessa funzione di risolvere diversi tipi di problemi. In questo caso prevede la presenza della possibilità di un'azione diversa, il cui contenuto dipenderanno dal tipo di oggetto con cui è fatto il lavoro. Sotto il polimorfismo comprendere le proprietà degli elementi che hanno un genitore comune per eseguire simile al significato semantico del problema in modo diverso. Abbiamo tracciare un'analogia con gli animali. C'è l'azione – per l'esecuzione. Sappiamo tutti come succede. Ma diversi animali (leoni, elefanti, scimpanzé, coccodrilli, tartarughe) questa azione saranno svolte in diversi modi. In questo caso, il loro movimento è sviluppatore responsabile, che all'occorrenza può causare per un caso particolare una routine certo algoritmo e implementazione con successo. Questo viene fatto utilizzando un insieme di metodi. Allo stesso tempo, in ogni programmatore classe specifica quale oggetto proprietà che sono inerenti. Cambiare qualcosa nella prole, è possibile ottenere specifiche, azione desiderata in questo caso. Un tale effetto è chiamato polimorfismo di oggetti. In generale, una classe astratta è uno strumento estremamente utile per la programmazione.