Redefinieren der Vererbung

J

Jens990

Gast
Hallo,

irgendwie steh ich auf dem Schlauch...:(

Beschäftige mich seit kurzem mit Java und der Vererbung.
Nun habe ich einen "Superklasse"(zB Tiere) und mehrere "Unterklassen"(Hase, Hund etc.) welche Instanzvariablen und Methoden (Alter/bewegen/Bellen) usw. der Superklasse besitzen/geerbt haben.

Da manchen Sachen auf die einzelnen Tiere nicht zutreffen habe ich zum Beispiel die Klasse Hase wie folgt geschrieben:

public class Hase extends Tier {



public void belllen() {
System.out.print("Ich belle nicht!!");
}

public static void main (String[] args) {

Tier hase = new Tier();


hase.name = "Hase";
hase.farbe = "schwarzes";
hase.bellen();
...



Der Quellcode wir kompiliert aber "bellt mein Hase" immer noch, irgendwie scheint die Redifinierung nicht zu funktionieren :(
Kann mir jemand helfen???


mfg
 
J

Jens990

Gast
zur Ergänzung:

Ich möchte dass die "Hase.java" am Ende nicht die in der Superklasse "Tier" definierte bellen-Methode ausführt, sondern einfach sagt dass der Hase eben nicht bellt ;)
 

Spewer

Aktives Mitglied
Wenn dein Objekt vom Typ Hase die Methode bellen() hat, dann "bellt" dein Hase auch.
Java weiß schließlich nicht, dass ein Hase nicht bellt, auch nicht wenn du "ich belle nicht" schreibst.

Theoretisch bräuchte deine Klasse Hund eine Methode bellen.
 

anti-held

Bekanntes Mitglied
Damit er nicht mehr bellt, musst du auch einen Hasen erstellen und kein Tier:

Java:
Tier hase = new Hase();

P.S. Bitte benutze die Java-Tags für deinen Code
 

Crian

Top Contributor
Die Signatur von
Code:
bellen()
stimmt in
Code:
Hase
und
Code:
Tier
genau überein?
 

Timothy Truckle

Top Contributor
Die Signatur von
Code:
bellen()
stimmt in
Code:
Hase
und
Code:
Tier
genau überein?
Schreib mal ein
Code:
@Override
über die Methode
Code:
bellen()
in
Code:
Hase
, dann sagt Dir der Compiler, dass Du
Code:
bellen()
in
Code:
Hase
mit genau so vielen
Code:
l
schreiben musst wie in
Code:
Tier
...

bye
TT
 
J

Jens990

Gast
Die Signatur von
Code:
bellen()
stimmt in
Code:
Hase
und
Code:
Tier
genau überein?

Hallo nochmal,

ja das habe ich mehrfach geprüft, ist genau dieselbe...

Nochmal zur Erklärung:
Die Superklasse "Tier" hat mehrere Methoden die auch in der Unterklasse "Hase" vorkommen sollen, nur eben diese eine (bellen) soll kein bellen auslösen, sondern einen simplen Satz schreiben ("ich belle nicht...")




mfg
 

anti-held

Bekanntes Mitglied
wie ich oben schon schrieb, musst du dir damit das Tier auch nicht bellt, einen Hasen erstellen und kein Tier:

Java:
Tier hase = new Hase();
 

Spewer

Aktives Mitglied
Also ich dachte immer der Sinn von Vererbung wäre das Generalisieren und Spezialisieren.
Dementsprechend macht es wenig Sinn der Oberklasse Methoden zu geben, die nicht auf die Unterklassen zutreffen.
Nehmen wir mal als Beispiel:

Jedes Tier hat einen Namen und ein Alter und kann riechen:
Java:
public class Tier
{
    public String name;
    public int age;
    
    public void riechen()
    {
	
    }   
}

Ein Hund kann auch noch bellen:

Java:
public class Hund extends Tier
{
    public Hund()
    {
	super();
    }
    
    public void bellen()
    {
	
    }
}

Und ein Hase kann Ostereier verstecken :D :
Java:
public class Hase extends Tier
{
    public Hase()
    {
	super();
    }
    
    public void versteckeOsterei()
    {
	
    }
}

So macht die Vererbung Sinn IMHO.
Und natürlich können jetzt die Unterklassen auch noch spezielle Attribute bekommen, die nicht auf andere Unterklassen zutreffen. Und mit der Struktur ist sichergestellt, dass kein Hase bellt.
 
J

Jens990

Gast
Damit er nicht mehr bellt, musst du auch einen Hasen erstellen und kein Tier:

Java:
Tier hase = new Hase();

P.S. Bitte benutze die Java-Tags für deinen Code

DANKE!!! Das war mein Fehler....
Dachte dass müsste immer noch
Java:
Tier hase = new Tier();
heißen, damit die Methoden der Klasse Tier vererbt werden, ist es richtig dass dies schon geschieht das oben ja schon
Java:
public class Hase extends Tier {
steht?


Danke und Gruss
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben