2011-09-15 29 views

risposta

2

Questo è un punto interessante: La classe Object conosce una delle sue sottoclassi, cioè String (in particolare, di dichiarare e implementare il metodo toString()).

Parte delle specifiche del linguaggio Java è che tutte le classi sono sottoclassi implicite di Object. Anche se tecnicamente è "design scadente" perché una classe si riferisca a una delle sue sottoclassi, penso che sia un "caso limite" e non qualcosa di cui preoccuparsi.

3

Questo non è un problema finché esiste la classe figlio. Ad esempio, la seguente è valido:

A.java:

public class A { 
    B b; 
} 

B.java:

public class B extends A { 

} 
0

perché c'è un'implementazione predefinita toString su Object che rende sicuro che venga restituita un'istanza String. Poiché ogni classe è un'istanza di Object, l'implementazione predefinita è sempre gratuita, sebbene sia possibile e necessario implementare toString nelle sottoclassi.

Non c'è nulla che impedisca metodi in qualsiasi classe restituendo istanze di un'altra classe. Si può sempre fare

return new SomethingElse()

dove SomethingElse è un'altra classe.

Problemi correlati