Q18
Given:
public class SampleClass {
public static void main(String[] args) {
AnotherSampleClass asc
= new AnotherSampleClass();
SampleClass sc
= new SampleClass();// TODO code application
logic here
}
}
class AnotherSampleClass extends SampleClass {
}
Which statement,
when inserted into line “// TODO code application logic here”, is valid change?
A.
asc = sc;
asc = sc;
B.
sc = asc;
sc = asc;
C.
asc = (object) sc;
asc = (object) sc;
D.
asc = sc.clone ();
asc = sc.clone ();
la risposta giusta è la B. Infatti si può assegnare una sottoclasse ad una super classe. A e C invece assegnano la superclasse alla sottoclasse e questo non ha senso (considerando object come la classe Object). La risposta D è sbagliata per lo stesso motivo, il metodo clone restituisce un Object e questi non può essere assegnato ad una sua sottoclasse (asc è sottoclasse di Object come le classi in java):
clone
protected Object clone() throws CloneNotSupportedException
rif: http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#clone()
rif: conversioni superclasse e sottoclasse
Nessun commento:
Posta un commento