Parametri dell'ereditarietà e dei metodi / tipi di ritorno - Si prega di verificare la mia logica

-1

Mi sto preparando per un test e faccio domande pratiche, questo in particolare non sono sicuro di averlo fatto correttamente:

Ci viene fornito un diagramma UML molto semplice per dimostrare l'ereditarietà: spero che questo sia chiaro, mostra che W eredita da V e così via:

                  |-----Y
V <|----- W<|-----|
                  |-----X<|----Z

e questo codice:

public X method1(){....}
method2(new Y());
method2(method1());
method2(method3());

Le domande e le mie risposte:

  1. Q: quali tipi di oggetti potrebbero restituire il metodo1?

    A: X e Z, poiché la definizione del metodo include X come tipo di ritorno e dato che Z è un tipo di X è OK per restituire entrambi.

  2. Q: Quale potrebbe essere il tipo di parametro di method2?

    A: Poiché il metodo2 nel codice accetta Y, X e Z (come ritorno da method1), il tipo di parametro deve essere V o W, poiché Y, X e Z ereditano da entrambi di questi.

  3. Q: Cosa può restituire il tipo di metodo3 essere?

    A: il tipo di ritorno del metodo3 deve essere V o W in quanto ciò sarebbe coerente con la risposta 2.

posta Dawson 24.10.2013 - 04:21
fonte

2 risposte

0

Il risultato di Method3 () può appartenere a V o W. Quindi, può essere di qualsiasi tipo, poiché qualsiasi tipo qui appartiene a V.

Gli altri due sono OK

    
risposta data 27.01.2014 - 15:09
fonte
-1

method3 potrebbe avere un tipo restituito che è tutto ciò che potrebbe essere accettato da method2 , che significa V , W e ogni sottoclasse di W poiché tutti potrebbero essere accettati da method2 . Dato quanto poco sappiamo di method3 , non c'è davvero alcuna ragione per far finta di sapere che il suo tipo di ritorno deve essere solo V o W . Meno sappiamo, più possibilità ci sono.

    
risposta data 19.11.2013 - 06:23
fonte

Leggi altre domande sui tag