Classi astratte

Una classe astratta è una classe che non può essere instanziata e che serve solo per essere derivata, definendo al suo interno metodi e proprietà tutti o in parte anch’essi astratti. Una classe astratta che implementa solo ed esclusivamente metodi e proprietà astratte viene detta classe astratta pura.

abstract può essere applicato sia a metodi che alle classi, ma non a variabili in quanto dichiarare una variabile astratta non avrebbe nessun senso logico.

Le classi astratte permetto d’implementare il concetto di polimorfismo, uno dei capisaldi della programmazione orientata agli oggetti. Il polimorfismo consente di assegnare comportamenti differenti a istanze di classi differenti derivanti tutte dalla stessa classe base, in questo caso la classe astratta. Per implementare il polimorfismo però i metodi e le proprietà del tipo base devono essere dichiarati come abstract, affinché questi possano essere riscritti senza il modificatore open.

Per definire una classe astratta in Kotlin, dobbiamo anteporre alla definizione della classe la keyword abstract, stessa cosa vale per la definizione di metodi astratti, come possiamo vedere nell’esempio seguente:

abstract class Programmatore {

abstract fun programma()

}

Necessariamente dobbiamo definire la classe Programmatore come astratta in quanto il metodo programma() sarà per forza un metodo astratto. Infatti il metodo citato modella l’approccio alla programmazione che ha quel programmatore a seconda del linguaggio che utilizza: se un programmatore usa il C avrà un approccio procedurale alla programmazione, se il programmatore usa il Kotlin l’approccio sarà orientato agli oggetti e dunque il metodo programma() assume due significati diversi.

class ProgrammatoreC : Programmatore() {

override fun programma() {

}

}

results matching ""

    No results matching ""