2017-03-28 4 views
-1

Stellen Sie sich folgendes Szenario vor: Ich habe zwei Schnittstellen A und B. Beide Schnittstellen haben eine Elementfunktion display().Mehrere Vererbung in Java Beispiel

public interface A { 
    public function display() { 
    } 
} 

public interface B { 
    public function display() { 
    } 
} 

class C implement A, B { 
    public function display{ 
     //definition here 
    } 
} 

Ich möchte nur wissen,

  1. wie viele display() Funktionen in der Klasse verfügbar sind C?
  2. Wenn es eine Mitgliedsfunktion gibt, wie ist es möglich?
+2

Bitte geben ein richtiges Beispiel (seit wann Schnittstellen haben Methodenkörper, wenn es keine Standardmethode ist). – Tom

+1

Ist das nicht Hausaufgaben? – Omore

+0

Ist es eine dringende Frage, nehme ich an? –

Antwort

3

A brilliant Erklärung ist unter: Implementing two interfaces in a class with same method. Which interface method is overridden?

Wenn ein Typ zwei Schnittstellen implementiert, und jede Schnittstelle definieren, eine Methode, die identische Signatur hat, dann in der Tat gibt es nur eine Methode ist, und sie sind nicht unterscheidbar. Wenn beispielsweise die beiden Methoden widersprüchliche Rückgabetypen aufweisen, handelt es sich um einen Kompilierungsfehler. Dies ist die allgemeine Regel für Vererbung, Überschreiben von Methoden, Verbergen und Deklarationen und gilt auch für mögliche Konflikte nicht nur zwischen zwei geerbten Schnittstellenmethoden, sondern auch einer Schnittstelle und einer Superklassenmethode oder auch nur Konflikten aufgrund der Typlöschung von Generika .

1

Wie viele display() - Funktionen sind in Klasse C verfügbar?

gerade nur ein

Wenn es eine Member-Funktion, wie es möglich ist?

Weil sie die gleiche Signatur

haben, aber dies ist in Java verboten, ist es nicht möglich, mit den gleichen Namen und verschiedenen Typen, Sie, dass Sie mehr über hier lernen können Java - Method name collision in interface implementation