Interface: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Informatik Kategorie:Informatik-Abitur =Interface (Schnittstelle)= Interfaces (Schnittstellen) werden immer dann gebraucht, wenn verschieden…“) |
|||
Zeile 25: | Zeile 25: | ||
'''Klassendiagramm''' | '''Klassendiagramm''' | ||
[[File:Interface.png|thumb|Person und Auto implementieren Printable |446px]] | |||
siehe rechts | |||
'''Implementierung''' | |||
<code> | |||
'''public interface Printable'''{ | |||
// Methode, die das Interface verlangt | |||
// nur die Signatur - keine Implementierung! | |||
'''public String printData();''' | |||
} | |||
</code> | |||
<code> | |||
public class Person '''implements Printable'''{ | |||
// Attribute | |||
private String name; | |||
private String vorname; | |||
// Konstruktor | |||
public Person(String pName, String pVorname){ | |||
this.name = pName; | |||
this.vorname = pVorname; | |||
} | |||
// Methoden | |||
public String getName(){ | |||
return name; | |||
} | |||
public String getVorname(){ | |||
return vorname; | |||
} | |||
'''// Methode, die das Interface Printable verlangt''' | |||
'''public String printData(){ | |||
return "Name: " + name + "; Vorname: " + vorname; | |||
} | |||
} | |||
</code> |
Version vom 18. Dezember 2017, 18:46 Uhr
Interface (Schnittstelle)
Interfaces (Schnittstellen) werden immer dann gebraucht, wenn verschiedene Klassen eine gemeinsame Fähigkeit haben sollen.
Das kann z.B. sein:
- Man soll die Objekte der Klassen drucken können.
- Man soll die Objekte der Klasse vergleichen können.
Schnittstellen werden deswegen in der Regel durch Adjektive bezeichnet, z.B.
Printable
Comparable
Eine Schnittstelle (Interface)...
- enthält keine Attribute
- enthält nur die Spezifikationen von Methoden, nicht aber deren Implementierung.
Von Schnittstellen kann man dementsprechend keine Objekte erzeugen.
Wenn eine Klasse von einer Schnittstelle erbt, dann wird das mit einem gestrichelten Vererbungspfeil dargestellt.
Beispiel
Für viele Klassen (z.B. die Klassen Person, Auto
...) ist es sinnvoll, wenn die wesentlichen Informationen der Objekte gedruckt werden können - egal, um was für ein Objekt es sich handelt.
Klassendiagramm
siehe rechts
Implementierung
public interface Printable{
// Methode, die das Interface verlangt
// nur die Signatur - keine Implementierung!
public String printData();
}
public class Person implements Printable{
// Attribute
private String name;
private String vorname;
// Konstruktor
public Person(String pName, String pVorname){
this.name = pName;
this.vorname = pVorname;
}
// Methoden
public String getName(){
return name;
}
public String getVorname(){
return vorname;
}
// Methode, die das Interface Printable verlangt
public String printData(){
return "Name: " + name + "; Vorname: " + vorname;
}
}