Extends/Implements Frage

JavaTalksToMe

Mitglied
Guten Abend,

ich habe eine Verständnissfrage in Bezug auf extends. Mir ist natürlich klar, dass dies Vererbung ist. Nutze ich extends, vererbt die Parentclass beispielsweise ihre Methoden an die Childklasse. Ich weiß auch wie Vererbung funktioniert.
Um zu verdeutlichen, was ich genau wissen möchte, hier zwei Beispiele aus dem Rheinwerk Buch:

Code:
public class DateThread extends Thread
{
  @Override public void run()
  {
    for ( int i = 0; i < 20; i++ )
      System.out.println( new Date() );
  }
}

class CounterCommand implements Runnable
{
  @Override public void run()
  {
    for ( int i = 0; i < 20; i++ )
      System.out.println( i );
  }
}



WAS genau passiert mit dieser Klasse, außer dass ich auf die Methoden der Threadklasse zugreifen kann? Ich hatte einmal eine eigene Klasse geschrieben, diese wollte ich einem Gridpane hinzufügen. Man kann aber nur Nodes einem Gridpane hinzufügen. Dann nutzte ich "extends" Pane und wurde somit als "Node" erkannt.

Aber kann mir jemand erklären, was genau da passiert? Wäre die Klasse dann nach obigen Beispiel ein Thread? Bzw eine Klasse mit den Eigenschaften eines Threads?
 
K

kneitzel

Gast
Also du drückst Dich etwas ungenau aus. Du spricht von "dieser Klasse" aber hast uns zwei Klassen gezeigt.

DateThread ist ein Thread, denn es erbt von Thread.

CounterCommand ist einfach eine "normale" Klasse, die von Object erbt. Das implements besagt lediglich, dass es auch die Runnable Schnittstelle hat.

Also wenn Du etwas hast, das ein Hund ist (Schäferhund, Dackel, ...), dann ist das ein Hund.
Aber natürlich ist nicht alles, das "Bellt" implementiert, ein Hund. Bellt wäre dann z.B. eine Schnittstelle die bellen() vorgibt.
Das kann aber auch eine Einbruchssicherung sein. Wenn jemand versucht, die Tür zu öffnen, dann kommt ein Bellen aus Lautsprechern.

Das bedeutet aber auch, dass das nichts von einem Hundeverhalten hat. Lediglich bellen() kann ausgeführt werden.

CounterCommand hat also nichts von einem Thread. Es hat lediglich eine run Methode weil es Runnable implementiert. Wenn Du einen Thread brauchst, dann muss Du dir also einen Thread holen. Das ist selbst kein Thread!
 

athkougr

Mitglied
In Java kann eine Klasse nur von einer Klasse vererben, hat aber die Möglichkeit mehrere Interfaces zu implementieren. Zum Beispiel kannst du eine generiesche Document Klasse haben und eine PdfDocument Klasse die von Document erbt:
Java:
abstract class Document {
}

class PdfDocument extends Document {
}

Wenn du jetzt noch weitere Eigenschaften der PdfDocument Klasse geben möchtest kannst du dass mit Interfaces realisieren:
Java:
interface Writeable {
    public void write();
}

interface Readable() {
    public void read();
}

class PdfDocument extends Document implements Writeable, Readable {
    public void write() {}
    public void read() {}
}

Auch haben andere Klassen die Möglichkeit die Interfaces zu implementieren. Wenn Writeable und Readable Klassen anstatt Interfaces währen, wurde es nicht möglich sein von beiden Klassen zu erben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
J Implements und Extends Java Basics - Anfänger-Themen 5
T extends und implements Java Basics - Anfänger-Themen 11
K Erste Schritte Extends Implements Java Basics - Anfänger-Themen 4
Y Threads extends Thread oder implements Runnable Java Basics - Anfänger-Themen 10
L Implements<-->extends und Interface Java Basics - Anfänger-Themen 10
N extends / implements / static, bedeutung ?? Java Basics - Anfänger-Themen 12
mrStudent <? extends T> und <? super T> Java Basics - Anfänger-Themen 1
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J extends Problem Java Basics - Anfänger-Themen 2
N extends und super vs new object Java Basics - Anfänger-Themen 4
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
M mehrere extends? Java Basics - Anfänger-Themen 19
J doppelname nach schlüsselwort extends Java Basics - Anfänger-Themen 4
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
Crazynet 2 extends Java Basics - Anfänger-Themen 22
S Wrapper Klasse und extends Java Basics - Anfänger-Themen 2
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
R Vererbung Übergabe von Variablen der Superklasse an Subklasse mit "extends" Java Basics - Anfänger-Themen 5
S Threads Thread wenn extends schon vergeben Java Basics - Anfänger-Themen 8
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
F Anfängerfrage zu extends Java Basics - Anfänger-Themen 12
B addAll(Collection<? extends E> c) Java Basics - Anfänger-Themen 9
T Input/Output StructuredFileReader extends BufferedReader Java Basics - Anfänger-Themen 6
K Erste Schritte extends vererbung Java Basics - Anfänger-Themen 15
P Class<? extends Entity> Array Java Basics - Anfänger-Themen 9
A final und extends Java Basics - Anfänger-Themen 14
C Vererbung "extends" umgehen mittels Objekterzeugung?! Java Basics - Anfänger-Themen 29
T Collections Queue<? extends Number> add() offer() Java Basics - Anfänger-Themen 13
S Klasse extends HashMap Java Basics - Anfänger-Themen 20
L Problem mit Vererbung (extends) cannot find symbol Java Basics - Anfänger-Themen 3
D MyActionListener extends Thread Java Basics - Anfänger-Themen 3
H2SO3- Designfragen (mehrfach extends) Java Basics - Anfänger-Themen 11
G Unterschied e extends y vs ? extends y Java Basics - Anfänger-Themen 5
X List von Klasse B als List von Klasse A (B extends A) Java Basics - Anfänger-Themen 2
H extends Locale Java Basics - Anfänger-Themen 4
O import ja....extends nein Java Basics - Anfänger-Themen 5
G Muss es immer extends sein ? Java Basics - Anfänger-Themen 9
N class Test<E extends MyAbstractClass> => typ von E? Java Basics - Anfänger-Themen 5
K mehrere Extends Java Basics - Anfänger-Themen 2
S extends Vector<xyz> Java Basics - Anfänger-Themen 10
S new .() extends JDialog {.} Java Basics - Anfänger-Themen 15
S extends und Konstruktor Java Basics - Anfänger-Themen 8
E Interface extends Observable Java Basics - Anfänger-Themen 13
G Wiedermal vererbung, extends JDialog extends Exception ? Java Basics - Anfänger-Themen 8
U extends JLabel & Thread Java Basics - Anfänger-Themen 2
G Innere klasssen unde "extends" klassen definieren, Java Basics - Anfänger-Themen 2
frau-u JMenu mit extends JPanel? Java Basics - Anfänger-Themen 4
G "extends DBConnection" funktioniert nicht Java Basics - Anfänger-Themen 15
C Problem mit Zeichnen auf einer extends Canvas Class... Java Basics - Anfänger-Themen 2
F Casten bei Implements Java Basics - Anfänger-Themen 2
G Moving Objects with Threads (implements Runnable) Java Basics - Anfänger-Themen 1
B implements Java Basics - Anfänger-Themen 6
H 2 x implements Java Basics - Anfänger-Themen 2
V Merkwürdiges Problem mit Netbeans und implements Java Basics - Anfänger-Themen 10
T Geht so was? public void verkaufe (<X implements Produkt& Java Basics - Anfänger-Themen 8
J Datentyp einer Klasse bei Anwendung von implements Java Basics - Anfänger-Themen 4
G Implements Extendd. Unterschied Java Basics - Anfänger-Themen 3
U implements ? Java Basics - Anfänger-Themen 9
W Klassen durch implements abstrakt definieren Java Basics - Anfänger-Themen 6
H Problem mit Implements Java Basics - Anfänger-Themen 7
R "implements Serializable" Fehler beim kompilieren Java Basics - Anfänger-Themen 2
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben