Visualizzazione dei risultati da 1 a 3 su 3

Discussione: interfacce

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220

    interfacce

    Ciao gente,
    sapete dirmi in poche parole qual'è la differenza tra classi astratte e interfacce? So che le interfacce sono intese come classi totalmente astratte...ma quindi?

    Quando usare le une e quando le altre?

  2. #2
    Utente di HTML.it L'avatar di godx3
    Registrato dal
    Apr 2008
    Messaggi
    37
    Le classi astratte sono classi che:
    - non possono essere istanziate (creare oggetti) ma posseggono lo stesso un costruttore, che non verrà mai usato in maniera diretta (ma dalle classi che la estendono con la chiamata super() )
    - presentano metodi astratti (di cui si si scrive solo l'intestazione, mentre l'implementazione va definita obbligatoriamente nella classe che estende la classe astratta) e metodi standard
    - vigono le regole classiche dell'ereditarietà (come le classi normali, non è possibile ereditare in maniera multipla)
    - possono presentare campi (standard)

    Le interfacce invece
    - non possono essere istanziate (creare oggetti) e mi sembra che non posseggono costruttori
    - si limita a dichiarare metodi (che sono implicitamente abstract) che vanno "implementati" obbligatoriamente nella classe che la "implementa"
    - i metodi devono essere obbligatoriamente con visibilità public
    - non presenta campi in generale, può presentare solo campi costanti
    - concettualmente permette una "sorta" di ereditarietà multipla, perchè a differenza delle classi astratte, una classe derivata può implementare più interfacce!

    Credo di aver elencato le principali differenze...

  3. #3
    immagino la domanda fosse più teorica che pratica.

    Ad ogni modo ti rimando ad un post che feci tempo fa in una discussione uguale

    leggi
    Al mio segnale... scatenate l'inferno!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.