mercoledì 27 marzo 2013

Q18

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;
B.
sc = asc;
C.
asc = (object) sc;
D.
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