Si noti che non è possibile costruire un oggetto di una classe astratta, ma è comunque possibile avere un riferimento all'oggetto il cui tipo è una classe astratta. Naturalmente, l'oggetto reale a cui si riferisce deve essere un'istanza di una sottoclasse concreta:In che modo le classi astratte possono avere riferimenti ma non oggetti?
Account anAccount; // OK
anAccount = new Account(); // Error—Account is abstract
anAccount = new SavingsAccount(); // OK
anAccount = null; // OK
Non capire il motivo per cui si può avere un riferimento oggetto una classe astratta ...
Ok così quando si fanno cose come Account anAccount; cosa sta dicendo? in realtà non sta indicando nulla? Anche se non fosse una classe astratta, diciamo String tmp; non hai ancora dato un indirizzo? – user2809437
@ user2809437- È corretto. Quando pronunci "Account anAccount", ottieni un riferimento chiamato "anAccount" che inizialmente contiene "null", il che significa che non punta a nulla. È lo stesso con 'String tmp'; ottieni un riferimento a 'String', ma punta a' null' perché non l'hai ancora assegnato a un 'String'. – templatetypedef
Un'altra domanda ... che senso ha farlo? Se non è possibile creare un'istanza della classe, perché entrambi con il riferimento? – user2809437