Hallo zusammen,
einmal vorweg, warum man die Interfaces Allgemein braucht ist mir klar, sie sollen Schnittstellen zwischen verschiedenen Programmen (und Klassen?) schaffen.
Aber die Anwendung will mir nicht ganz in den Kopf gehen!!
Ich arbeite mich momentan durch das java Kompendium von Markt und Technik und bin grad in dem Kapitel mit den Interfaces und verstehe das Beispiel nicht genau:
Folgendes Interface:
Dieses Interface wird in den verschiedenen Klassen eingebunden:
Hier taucht schon die erste Frage auf: Warum soll ich ein Interface schreiben, wenn ich die Methoden, die es bereitstellt sowieso überschreiben muss? (zeichnen) dann kann ich doch eigentlich das interface weglassen und einfach nur die Methode in den Klassen implemetieren? oder nicht?
Ich verstehe auch nicht so ganz warum ich hier zElemente vom Typ Zeichenbar mache? und warum ich in diesem Array dann auch Objekte vom Typ Kreis und Rechteck speichern kann.
Oder liegt das daran, dass ich in die Klassen Rechteck und Kreis das Interface implementiere und Kreis und Rechteck somit instanceof Zeichenbar werden?
Wäre um jede Hilfe dankbar, mir gehts hier nur ums Verständnis!
Danke im Vorraus!
einmal vorweg, warum man die Interfaces Allgemein braucht ist mir klar, sie sollen Schnittstellen zwischen verschiedenen Programmen (und Klassen?) schaffen.
Aber die Anwendung will mir nicht ganz in den Kopf gehen!!
Ich arbeite mich momentan durch das java Kompendium von Markt und Technik und bin grad in dem Kapitel mit den Interfaces und verstehe das Beispiel nicht genau:
Folgendes Interface:
Code:
interface Zeichenbar{
public abstract void zeichnen();
}
Code:
abstract class Form{
public abstract double umfang();
public abstract double flaeche();
}
Dieses Interface wird in den verschiedenen Klassen eingebunden:
Code:
class Kreis extends Form implements Zeichenbar{
[...]Formeln zur Kreisberechnung[...]
public void zeichnen(){
System.out.print("Zeichne einen Kreis");
}
}
Code:
class Rechteck extends Form implements Zeichenbar{
[...]Formeln zur Flächenberechnung[...]
public void zeichnen(){
System.out.print("Zeichne einen Rechteck");
}
}
Hier taucht schon die erste Frage auf: Warum soll ich ein Interface schreiben, wenn ich die Methoden, die es bereitstellt sowieso überschreiben muss? (zeichnen) dann kann ich doch eigentlich das interface weglassen und einfach nur die Methode in den Klassen implemetieren? oder nicht?
Code:
class Schnittstellen{
public static void main(String[] args){
Zeichenbar[] zElemente = new Zeichenbar[2];
zElemente[0] = new Kreis(3); //3 = radius
zEmelente[1] = new Rechteck(3,5);
for(int i = 0; i < zElemente.length; i++){
zElemente[i].zeichnen();
}
}
}
Ich verstehe auch nicht so ganz warum ich hier zElemente vom Typ Zeichenbar mache? und warum ich in diesem Array dann auch Objekte vom Typ Kreis und Rechteck speichern kann.
Oder liegt das daran, dass ich in die Klassen Rechteck und Kreis das Interface implementiere und Kreis und Rechteck somit instanceof Zeichenbar werden?
Wäre um jede Hilfe dankbar, mir gehts hier nur ums Verständnis!
Danke im Vorraus!