interface
-
hilfe,
ich bin java-dummi
wozu braucht java interface? ist ähnlich wie C++-template?dank vorher
-
nein ist wohl eher mit c++'s abstrakten klassen zu vergleichen (methoden pure virtual)
-
aber wozu brauche <T> ? z.B
public interface Groesse <T>
vielen Dank, ich schlage some bücher gleich nach!
-
Nun seit Java 1.5 ähh 5 kennt Java nun auch Generics.
Das ist in etwas ähnlich zu Templates bei C++.
-
@damo: So wirst es nicht weit bringen. Mein Rat ist: Mach mal das Java Tutorial durch. http://java.sun.com/docs/books/tutorial/index.html#basics
-
hehejo schrieb:
Nun seit Java 1.5 ähh 5 kennt Java nun auch Generics.
Das ist in etwas ähnlich zu Templates bei C++.Also eigentlich ist das nichtmal etwas ähnliches.
Templates in C++ und Generics in Java dienen völlig unterschiedlichen Zwecken: In C++ nutzt man Templates, um generischen Code schreiben zu können. In Java nutzt man Generics, um statische Typsicherheit zu haben. ...und dann gibt es in C++ noch soetwas wie "Template-Metaprogrammierung". Etwas, zu dem Java kein Äquivalent kennt.
-
vielen Dank zu alles, ich habe ein schönes Beispiel gesehen, vielleicht das kann alle Eigenschaften von interface enthalten?
/* test.java */ public class test { public static long flaeche(Groesse g) { return (long)g.laenge() * g.breite(); } public static void main(String[] args) { Auto auto = new Auto(); auto.laenge = 6; auto.hoehe = 2; auto.breite = 3; Platz platz = new Platz(); System.out.println("Auto: " + grundflaeche(auto)); System.out.println("Platz: " + grundflaeche(platz)); } } /* Groesse.java */ public interface Groesse { public int laenge(); public int hoehe(); public int breite(); } /* Auto.java */ public class Auto implements Groesse { public String name; public int erstzulassung; public int leistung; public int laenge; public int hoehe; public int breite; public int laenge() { return this.laenge; } public int hoehe() { return this.hoehe; } public int breite() { return this.breite; } } public class Platz implements Groesse { public int laenge() { return 100; } public int hoehe() { return 0; } public int breite() { return 70; } }
oder........?
-
noch über <T>:
public interface Queueable {...}
public interface Queue<T extends Queueable> {...}was bedeutet <T extends Queueable> ? T ist template wie c++?
-
Hauptsächlich dienen Interfaces in Java die nicht vorhandene
(ist auch gut so) Mehrfachverbung zu ersetzen.In Damo's Beispiel haben die Klassen Auto und Platz ja nichts
miteinander zu tun (sind in keiner gemeinsamen Vererbungshierachie),
aber beide verstehen etwas mit den im Interface Größe
definierten Nachrichten (Methoden) anzufangen.