differenze tra classe astratta e interfaccia

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Non riesco a comprendere che differenza ci sia a livello pratico... qualcuno mi potrebbe aiutare?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
La classe astratta viene usata nel caso in cui hai dei metodi che devono essere ridefiniti, mentre altri sono sempre gli stessi. Un esempio potrebbe essere la classe per la connessione a diversi tipi di database. Si crea una classe di base astratta che contiene tutti i metodi per la connessione e l'esecuzione di query, eccetera, però si implementa comunque il metodo che visualizza un errore, che sarà uguale per tutti i database. Una classe astratta può comunque essere definita "una classe".

Un'interfaccia invece non è un'interfaccia, è come lo scheletro di una classe. Tutti i metodi di un'interfaccia devono essere necessariamente ridefiniti. Non è una classe, ma un costrutto a sé stante.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
da Wikipedia:
In informatica si dice classe astratta una classe che definisce una interfaccia senza implementarla completamente. Ciò serve come base di partenza per generare una o più classi specializzate aventi tutte la stessa interfaccia di base. Queste potranno poi essere utilizzate indifferentemente da applicazioni che conoscono l'interfaccia base della classe astratta, senza sapere niente delle specializzate.

Nella programmazione, in particolare in quella orientata agli oggetti, l'interfaccia di una classe è formata dall'insieme dei dati e dei metodi visibili all'esterno di un oggetto. Nel linguaggio Java le interfacce possono contenere esclusivamente metodi con visibilità pubblica e campi statici e final.
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Quindi facendo un esempio pratico:

Per calcolare l'area di una certa forma (che questa sia un cerchio, un quadrato, un rettangolo....) utilizzo un'interfaccia. La quale sarà implementata con classi cerchio, quadrato, rettangolo... le quali contengono vari metodi ma hanno tutti la stessa struttura.

Mentre se quello che devo calcolare è solo ed unicamente l'area di un quadrato utilizzo una classe astratta


Giusto?
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Mah, se devi calcolare solo l'area di un quadrato basta che crei una classe normale. Ribadisco quello che ho detto: l'interfaccia rappresenta solo i profili dei metodi. La classe astratta, invece, è sempre una classe normale, però alcuni metodi devono essere implementati. Io uso le classi astratte quando solo alcuni metodi devono essere modificati.
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Ho capito; quindi la cosa più interessante è rappresentata dall'interfaccia... che costituisce la vera "portanza"; mentre la classe astratta è utile per il semplice fatto che i metodi astratti devono essere eseguiti nelle sottoclassi.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Gianpiero [javascript] Differenze tra browser Javascript 9
Aruba Cloud Differenze tra Cloud PRO e Cloud SMART Cloud Computing e Cloud Server 0
L Teoricamente che differenze ci sono tra BackgroundImage IMG e/o Testo normale?? HTML e CSS 2
F Creazione File XML, differenze tra WP e Blogger WordPress 4
G differenze di performances e velocita' tra PHP e JAVA? PHP 1
molesto Differenze tra server virtuale e server "normale" Server Dedicati e VPS 4
G Differenze tra browser Javascript 0
S Differenze tra suite Adobe CS4 e CS5 Windows e Software 5
L Differenze tra windows 32 bit e 64 bit [era: Conviene Windows 64bit] Windows e Software 1
I orologio-differenze tra browser HTML e CSS 3
C [Java] Differenze tra funzioni e procedure Java 2
bubino8 [PHP] Differenze Secondi Minuti Giorni PHP 4
S differenze variabili Linux e Software 0
D Differenze legali delle opzioni hosting (privati/aziende) Hosting 4
M Differenze di visualizzazione della slide di testata WordPress 2
X Differenze web form asp.net e form html ASP.NET 2
Z Immagine fissa in Overflow: Differenze IE e Firefox HTML e CSS 7
M ADODB.connection e ADODB.recordset: differenze e utilità. Classic ASP 5
G Differenze dalla prima alle altre posizioni? SEO e Posizionamento 1
N differenze .aspx e .ascx ASP.NET 4
alex84freeangel Differenze Monitor LCD 19 e 17 Discussioni Varie 0
G Aggiornare le differenze di valore a video Javascript 2
N Differenze Programmazione 1
E Query differenza tra tabelle MySQL 5
A differenza tra account email e ISP presenti in blacklist Posta Elettronica 0
W Differenza tra orari PHP 3
Z Google Fonts CSS tra desktop e responsive HTML e CSS 1
MarcoGrazia Associazioni tra Search Console e Analitycs SEO e Posizionamento 0
M Collegamento tra form html e script php PHP 4
D popolare campi tra th alla select PHP 36
Gabriele Visioli Differenza tra hosting e hosting WordPress Hosting 4
S Differenza tra le funzioni include () e require ()? PHP 1
P Ciclare tra array di oggetti PHP 1
B Incongruenze tra Mac ver e PC ver Photoshop 1
N Problema passaggio variabili tra pagine PHP 4
L estrarre valori max tra più tabelle MySQL 2
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
S Utilizzo variabili di sessione tra PC e server PHP 0
R Relazione tra tabelle MS Access 5
Tommy03 Query tra 3 tabelle MySQL 2
elpirata [MySQL] Sincronizzare dati tra due tabelle sullo stesso host MySQL 0
R passaggio variabili tra modulo genitore a figlio jQuery 3
P Passagio dati complessi tra una ASP.NET webapi e Angular ASP.NET 1
A [ASP] Confronto tra dati Form e DB Classic ASP 2
G [PHP] Passare dati tra record PHP 4
M [MS Access] Relazione tra maschere MS Access 1
T onsiglio Web agency tra Caserta Agro Aversano e Napoli e zone vicine. Offerte e Richieste di Lavoro e/o Collaborazione 0
D Jquery, conflitto tra loro risolvibile? jQuery 7
J Passaggio variabile tra 2 file php PHP 15
E Compro profilo Instagram tra 10k e 30k Annunci servizi di Social Media Marketing 2

Discussioni simili