Confusione del polimorfismo

-1

Ho letto una volta in un libro sull'eccezione dove "un oggetto di tipo Eccezione può essere un'istanza di qualsiasi sottoclasse di Eccezione ". Ho capito, ma c'è ancora confusione, qualcuno può chiarirmi il significato di questo?

    
posta user962206 15.01.2012 - 10:13
fonte

4 risposte

6

Autore significa dire che i puntatori di classe base possono puntare a qualsiasi oggetto di classi derivate.

Una classe derivata avrà i membri pubblici / protetti della classe base. Quindi, il casting è implicito e non dannoso.

Esempio: Abbiamo una classe vehicle .

La classe car è derivata da esso, e così è truck .

Quindi, se crei un oggetto di tipo car o truck , l'oggetto può ovviamente puntare alla sua classe base vehicle . %codice%. Una macchina This crux of it is the is-a relationship veicolo.

    
risposta data 15.01.2012 - 10:44
fonte
2

Il punto a cui l'autore sta arrivando è quando hai una variabile dichiarata di tipo Exception , l'oggetto reale assegnato a quella variabile non è necessariamente un'istanza di Exception stessa - potrebbe anche essere una qualsiasi di le sottoclassi di Exception .

    
risposta data 15.01.2012 - 11:17
fonte
0

Le sottoclassi di eccezioni sono costituite da oggetti che estendono Eccezione, ovvero NullPointerException, ClassNotFoundException, OutOfRangeException. Solo le sottoclassi di Exception saranno mai un oggetto Exception.

Da wikipedia ;

In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects.

Boxer, Beagle, Collie = Sottoclassi di Cane

    
risposta data 15.01.2012 - 10:26
fonte
0

Il punto del polimorfismo è che gli oggetti di una certa classe possono essere trattati allo stesso modo degli oggetti della loro classe genitore, sebbene il loro comportamento possa essere diverso.

L'esempio principale in Java è la classe Object. Tutte le altre classi in Java sono sottoclassi di Object e possono quindi essere utilizzate ovunque sia possibile Object. Una lista è una collezione ordinata di oggetti - quindi (almeno prima di Java 1.5) una lista può contenere 3 oggetti Foo, 14 oggetti Bar e un singolo oggetto Bat. Non si sa necessariamente in anticipo quale sia la classe reale degli oggetti nella Lista, eccetto che si tratta di Oggetti.

Un altro buon esempio in Java è la classe Number. Un numero intero è un numero, quindi ovunque sia possibile utilizzare un numero, è possibile utilizzare un numero intero o una qualsiasi delle sottoclassi di numero (lungo, mobile, doppio, breve, grande, numero atomico, ecc.). Tutte queste sottoclassi di Numero sono un po 'diverse - I float rappresentano i numeri reali, mentre gli interi rappresentano gli interi - ma sono tutti numeri e quindi possono essere descritti e consultati in termini di numeri.

    
risposta data 15.01.2012 - 22:24
fonte

Leggi altre domande sui tag