Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse

StupidAttack

Bekanntes Mitglied
Huhu

Habe ein abstraktes Problem, dass allerdings ziemlich schnell gelöst werden kann(glaube ich). Onkel google scheint mir überfragt.
Java:
public abstract class Haustiere
{
	String name;
	double futtervorrat;
	int anzahlTage;

	public Haustiere (String name, double futtervorrat) 
	{
	this.name = name; 
	this.futtervorrat = futtervorrat;  
	this.anzahlTage = anzahlTage;     
	}

	public void fuettern()            //DIES BETRIFFT MEINE FRAGE
	{

  	public abstract void sprich();          

	while(futtervorrat>0) 
	public abstract void friss();
        }		
	
	public void anzeigen()
	{
	System.out.println("haustiername: "+name+" Futter reicht: ");
	}

}


meine frage betrifft den kommentiert gedruckten Teil:

Kann ich in einer abstrakten Klasse, in einer nicht abstrakten methode (fuettern) 2 abstrakte Methoden einbauen? Also die 2 abstrakten Methoden werde ich in den Unterklassen schreiben, doch ich will dann in meinen Objekten (die der Unterklassen) auf die nicht abstrakte Methode fuettern zurückgreifen...geht das? mein compiler sagt nein, andere probleme kann ich 8eigentlich) auschliessen...

Danke für eure Hilfe!
 

Haave

Top Contributor
Hab es gerade mal selbst an nem eigenen Stück Code ausprobiert, scheint nicht zu gehen, wie es aussieht. Allerdings sehe ich auch nicht soo die Notwendigkeit dafür, das zu tun, denn was bezweckst du damit? Dann hast du bspw. eine Methode, die zwei andere Methoden aufruft. Das hättest du auch einfacher haben können, indem du die beiden gewünschten Methoden direkt in die Main-Methode schreibst, denke ich…
 
G

Gast2

Gast
Kurz und gut: Nein. Abstract hin oder her - rein syntaktisch kann man keine Methoden in dem Rumpf anderer Methoden definieren.
 

StupidAttack

Bekanntes Mitglied
Hab es gerade mal selbst an nem eigenen Stück Code ausprobiert, scheint nicht zu gehen, wie es aussieht. Allerdings sehe ich auch nicht soo die Notwendigkeit dafür, das zu tun, denn was bezweckst du damit? Dann hast du bspw. eine Methode, die zwei andere Methoden aufruft. Das hättest du auch einfacher haben können, indem du die beiden gewünschten Methoden direkt in die Main-Methode schreibst, denke ich…

Gute Frage, ich mache dass aus rein didaktischen Gründen, ich will also lernen und kein Problem lösen. und es wäre dabei schön wenn ich Polymorphie und Vererbung/ abstrakte Klassen miteinbeziehen kann. In der main methode wäre ein solches dingens natürlich besser aufgehoben, aber für grössere Projekte der Übersichtlichkeit zum zwecke wählte ich halt diesen weg...


@ fassy:

mhh, aber ich definiere die Methode doch noch gar nicht, ich teile dem Compiler doch nur mit, dass meine Unterklassen die Definition übernehmen werden. Aber sonst bin ich mit dem Faktum, das das schlichtwegs ned geht, zufrieden. Danke.

Wahrscheinlich habe ich die Aufgabenstellung einfach verfehlt:

Erstellen Sie eine abstrakte Klasse Haustiere. Die Klasse besteht aus

* den Instanzvariablen

String name;
double futtervorrat;
int anzahlTage; // gibt die Anzahl Tage aus, die der Futtervorat reicht

* einem Konstruktor, der die beiden Instanzvariablen name und futtervorrat initialisiert ( Dieser Kontruktor kann zwar nicht direkt genutzt werden, da die abstrakte Klasse Haustiere nicht instanziiert werden kann, aber er kann von den Subklassen Katze und Hund verwendet werden.)
* der Methode

public void fuettern()
{
// Hier erfolgt zuerst der Aufruf der Methode sprich().
// Solange der Futtervorat reicht, wird dann die Methode friss() aufgerufen
// und die Anzahl der Tage hochgezählt, die der Vorrat reicht.
// Implementiert werden die abstrakten Methoden sprich() und friss() erst in den Subklassen.
}

* der Methode

public void anzeigen()
{
// zeigt den Namen des Haustiers an und wie viele Tage der Futtervorrat reicht
}

* und den abstrakten Methoden

public abstract void friss();
public abstract void sprich();





b???:L
 

Murray

Top Contributor
Lt. Aufgabenstellung sollst Du in fuettern() die Methode sprich() aufrufen (und nicht etwa deklarieren, was syntaktisch tatsächlich nicht möglich ist).
 

Haave

Top Contributor
Ja, die Schilderung der Aufgabenstellung ist tatsächlich etwas verwirrend. Es wird über die Methoden sprich() und friss() geredet, noch ehe die (bei dir mit Sternchen markierte) Aufzählung überhaupt dort angelangt ist. Vielmehr hätte man den Teil
* und den abstrakten Methoden

public abstract void friss();
public abstract void sprich();
vor das ganze fuettern()-Teil stellen sollen. Denkt man es sich nämlich mal auf diese Weise um, ergäbe das folgenden Code:

Java:
public abstract class Haustiere {
	public abstract void sprich();
	public abstract void friss();
	public void fuettern() {
		sprich();
		friss();
	}
}

class Hund extends Haustiere {
	public void sprich() {
		//irgendwas
	}
	public void friss() {
		//irgendwas
	}
}

Und DAS wiederum lässt sich durchaus kompilieren.
Hilft dir das weiter?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
S Abstrakte Methode nutzen Java Basics - Anfänger-Themen 9
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
K Abstrakte Klasse: vererbte Klasse; instance of? Java Basics - Anfänger-Themen 26
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
N Vererbung Abstrakte Klasse stateful Java Basics - Anfänger-Themen 3
D Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
E verdeckte abstrakte Methode sinnvoll? Java Basics - Anfänger-Themen 7
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
W Abstrakte und konkrete Klasse Java Basics - Anfänger-Themen 4
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Abstrakte Klassen - theoretische Frage Java Basics - Anfänger-Themen 2
OnDemand Abstrakte Klassen Java Basics - Anfänger-Themen 4
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
M Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12
N Datentypen abstrakte Klasse wird instanziert Java Basics - Anfänger-Themen 3
B Abstrakte Methode vs. Interface Java Basics - Anfänger-Themen 2
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
N Abstrakte Klasse Java Basics - Anfänger-Themen 28
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
V Vererbung Abstrakte Methode Java Basics - Anfänger-Themen 3
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
T Abstrakte Klasse Java Basics - Anfänger-Themen 3
S Abstrakte Klasse Java Basics - Anfänger-Themen 5
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
T Abstrakte Klassen Java Basics - Anfänger-Themen 6
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
K Abstrakte Klasse bilden? Java Basics - Anfänger-Themen 11
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
C Schnittstellen und Abstrakte Klassen Java Basics - Anfänger-Themen 3
I Abstrakte Klassen Java Basics - Anfänger-Themen 22
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G Abstrakte Klasse "Point" Java Basics - Anfänger-Themen 2
G Abstrakte Klassen ? Java Basics - Anfänger-Themen 9
G Abstrakte Methode in gleicher Klasse aufrufen Java Basics - Anfänger-Themen 5
M abstrakte Klasse Java Basics - Anfänger-Themen 3
nadoria abstrakte Klassen Java Basics - Anfänger-Themen 6
F Abstrakte Klasse: Konstruktor vs init() Java Basics - Anfänger-Themen 13
M Unterscheid Abstrakte Klassen/Interface Klassen? Java Basics - Anfänger-Themen 7
G Abstrakte Klasse (was passiert hier) Java Basics - Anfänger-Themen 3
T abstrakte Klassen? Java Basics - Anfänger-Themen 2
G Interface oder Abstrakte Klasse? Java Basics - Anfänger-Themen 3
G konkretes beispiel: interface hier besser als abstrakte kl. Java Basics - Anfänger-Themen 4
Acha Unterschied Interface - abstrakte Klasse Java Basics - Anfänger-Themen 4
M abstrakte klassen und interfaces Java Basics - Anfänger-Themen 2
B OOP: abstrakte klasse implementiert interface Java Basics - Anfänger-Themen 3
L abstrakte Methode nicht implementiert! Java Basics - Anfänger-Themen 5
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
H abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 13
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
R Interfaces durch abstrakte Klassen ersetzbar? Java Basics - Anfänger-Themen 8
A Abstrakte Klasse Java Basics - Anfänger-Themen 3
G abstrakte klasse Java Basics - Anfänger-Themen 6
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
A Eine abstrakte Methode static machen? Java Basics - Anfänger-Themen 4
A Abstrakte Klassen und Interfaces Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben