C'è un modo per scoprire il nome della classe derivata da un'istanza di classe base?Come trovare la sottoclasse dall'istanza della classe base?
es .:
class A{
....
}
class B extends A{
...
}
class c extends A{
...
}
ora se un metodo restituisce un oggetto di A
, faccio a sapere se è di tipo B
o C
?
Si noti che [tipo sniffing] (http://www.javapractices.com/topic/TopicAction.do?Id=3) è un po 'un odore di codice. Non è sempre la cosa sbagliata da fare, ma è l'approccio sbagliato abbastanza spesso da dare un'occhiata da vicino al tuo progetto. Se possibile, fai affidamento sul polimorfismo (ma vedi anche [When Polymorphism Fails] di Steve Yegge (http://sites.google.com/site/steveyegge2/when-polymorphism-fails)). – outis