2013-10-29 12 views
5

Im Buch, das ich für die neue Oracle Certified Professional vorzubereiten verwenden - Java SE7 Programmer-Prüfung, in dem Abschnitt, der mit Verfahren überwiegenden beschäftigt, ich habe über die folgenden kommen:Methode überschreiben: gleiche Argumentlistentypen (oder KOMPATIBLE Typen)?

Die übergeordnete Methode soll hat die gleiche Argumentlistentypen (oder kompatible Typen) als Basisversion.

Was meinen sie mit "kompatiblen Typen"? Ich meine, sobald sich die Typen der Argumentliste unterscheiden, überladen Sie, nicht übersteuernd.

Ich kann nur daran denken, eine Methode überschreiben, die varargs Argumente, mit einer, die ein Array des gleichen Typs nimmt. Compiler gibt eine Warnung aus, kompiliert aber trotzdem.

Was meinen sie mit kompatiblen Typen? Ist das ein Fehler im Buch?

+0

Bedeuten sie 'sub' /' super' Klassen zum ursprünglichen Typ? – nhgrif

+0

Vielleicht meinen sie den Unterschied zwischen '(int a, String b)' und '(String b, int a)' –

Antwort

2

Vielleicht hat es etwas mit Typ löschen zu tun. Dies gilt Java, es gibt Ihnen nur eine Warnung:

abstract class Foo { 
    public abstract void method(List<String> xs); 
} 

class Bar extends Foo { 
    @Override 
    public void method(List xs) { 
    } 
} 

Die rohe Art List ist kompatibel mit List<String>.

+1

IMO die zuverlässigste Antwort. http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html – Sambuca

+0

ein interessanter Punkt! habe nicht an diesen gedacht :-) –

Verwandte Themen