public interface Meininterrface {
public void tuIrgendwas();
}
public class Meineklasse implements Meininterface {
}
public interface Sprache
{
public void sagedies(String s);
public void sagejenes(String s);
}
public class Mensch implements Sprache
{
public void sagedies(String s)
{
//irgendetwas
}
public void sagejenes(String s)
{
//irgendetwas
}
}
public interface Zeichenbar {
public void zeichneGrafik (Graphics g);
}
public class Zellen extends Grafiken implements Zeichenbar {
@Override
public void zeichneGrafik (Graphics g) {
g.drawImage(image, x, y, null);
}
}
ArrayList<Grafiken> meineGrafiken = new ArrayList<Grafiken>(); // Eine einfach ArrayList vom Supertyp Grafiken
meineGrafiken.add(new Zelle()); // Ein Beispiel Element
for (Zeichenbar zeich : meineGrafiken) {
zeich.zeichneGrafik(g);
}
Danke
Ich glaub, dass ich es schon etwas(nicht wenig) mehr verstanden habe, aber zwei Fragen habe ich noch:
1.Wofür benutzt man sowas(Beispiel an einem Programm oder ähnliches)?
2.Wenn ich ein Interface mache:
Dann kann cih das interface und das implementieren des interfaces doch einfach weglassen, oder?
for (Teilbar teil : meineGrafiken) {
teil.zeichneGrafik(g);
Das ist ne Kurzschreibweise von
Java:for(int i=0; i<meineGrafiken.size(); i++) { meineGrafiken.get(i).zeichenGrafi(); }
Das stimmt nicht. foreach ist ein Ersatz für Iterator; es ersetzt aber nicht instanceof.Für - Jedes Element in meineGrafiken, dass Teilbar implementiert gehe die Liste durch:
ArrayList<Grafiken> meineGrafiken = new ArrayList<Grafiken>(); // Eine einfach ArrayList vom Supertyp Grafiken
meineGrafiken.add(new Zelle()); // Ein Beispiel Element
for (Grafiken zeich : meineGrafiken) {
if (zeich instanceof Zeichenbar) {
zeich.zeichneGrafik(g);
}
}