Abstrakte und konkrete Methode mit gleicher Signatur in der generischen Klasse

9

In JLS 8, Abschnitt 8.4.8.1 < Es gibt eine Aussage:

  

Eine konkrete Methode in einer generischen Oberklasse C kann unter bestimmten Parametrisierungen haben   die gleiche Signatur wie eine abstrakte Methode in dieser Klasse. In diesem Fall die konkrete Methode   ist vererbt und die abstrakte Methode ist nicht. Das Erbe   Methode sollte dann berücksichtigt werden, um seinen abstrakten Peer von C zu überschreiben.

Kann jemand ein Beispiel für eine solche Parametrisierung für generische Klassen geben? Ich war nicht in der Lage zu.

    
nezdolik 08.06.2016, 10:58
quelle

2 Antworten

2

Vielleicht

%Vor%

In diesem Fall sind beide Methoden in B void m(String) .

    
Roman 08.06.2016, 12:19
quelle
2

Die obige Antwort ist korrekt, die von @Roman gegeben wurde. Ich möchte noch eine weitere Antwort hinzufügen. Wenn wir den Parameter der Methode m () von String to Object ändern, wird es einen Kompilierungsfehler geben, weil Generics auf Type löscht, also nach type löschung m(T t) -> will be to m(Object t) , was Kompilierungsfehler ist, weil wir kann nicht zwei Methoden mit demselben Namen und derselben Signatur haben. Siehe unten Kompilierungsfehler -

%Vor%     
pbajpai21 08.06.2016 12:45
quelle

Tags und Links