Abstrakte Basisklasse Verständnisproblem!

Hallo liebe Java Gemeinde!

Ich habe folgendes Aufgabe gegeben:

5yLCzOr.png


R0snbam.png


Interface ist kein Problem, da man nichts definiert. Nun kommt aber Aufgabe 2 und diese verstehe ich einfach nicht. Es heißt "[...] liefert die Implementierungen der Schnittstellenmethoden length()[..]"

Wie genau soll ich den bitte die Länge ausgeben? Ich hab keine Objektvariablen, gar nichts. Der "Satz" wird auch erst in Aufgabe 3 in der Klasse "ArrayPhrase" gemacht. Hoffentlich kann mir da jemand helfen...

PS: hier ist noch die Testklasse die wir bekommen haben.

Java:
public class PhraseTest {

	public static void main(String[] args) {

		BasePhrase phrase1 = new ArrayPhrase();	// Default Konstruktor
		BasePhrase phrase2 = new ArrayPhrase("der","Studierende","studiert"); // C-TOR
		//BasePhrase phrase1 = new ListPhrase();	// Default Konstruktor
		//BasePhrase phrase2 = new ListPhrase("der","Studierende","studiert"); // C-TOR

		System.out.println(phrase1.toString());		// ""
		System.out.println(phrase2.toString());		// derStudierendestudiert		
		phrase2.remove(0);
		phrase2.insert(0,"der");					// test insert
		phrase2.insert(1,"oder");					// test insert
		phrase2.insert(2,"die");					// test insert
		phrase1.append("in");
		phrase1.append("der");
		phrase1.append("Bibliothek");
		System.out.println(phrase2.toString());		// deroderdieStudierendestudiert
		System.out.println(phrase1.toString());		// inderBibliothek		
		phrase2.append(phrase1);
		System.out.println(phrase2.toString());		// deroderdieStudierendestudiertinderBibliothek	
		phrase2.remove(1);
		phrase2.remove(0);							// dieStudierendestudiertinderBibliothek
		
		System.out.println(phrase2.toString());		// dieStudierendestudiertinderBibliothek	
		phrase2.remove(phrase2.words()-1);
		System.out.println(phrase2.toString());		// dieStudierendestudiertinder	
		System.out.println(phrase2.contains(new ArrayPhrase("in","die","Bibliothek")));			// false
		
		phrase2.insert(phrase2.words(),"Bibliothek");
		System.out.println(phrase2.toString());		// dieStudierendestudiertinderBibliothek	
		System.out.println(phrase2.contains(new ArrayPhrase("in","die","Bibliothek")));			// false
		System.out.println(phrase2.contains(new ArrayPhrase("in","der","Bibliothek")));			// true
		
		System.out.println(phrase2.contains("Studierende"));	// true
		System.out.println(phrase2.contains("oder"));			// false
		phrase2.strip();
		phrase2.strip();
		System.out.println(phrase2.toString());			// dieStudierendestudiert
		phrase2.strip();
		System.out.println(phrase2.toString());			// dieStudierendestudiert
		System.out.println(phrase2.length());			// 22
		//phrase2.strip().strip().strip().strip();		// NoElementException
		
	}

}

Würde man die Methode für die Berechnung der Länge erst in der ArrayPhrase machen, hätte ich kein Problem, da ich dort auf die einzelnen Array Inhalte zugreifen kann und mir die länge zusammenzählen und zurückgeben kann...
 

kaoZ

Top Contributor
Was hindert dich daran z.B Methode
Code:
length()
; so zu implementieren das du ihr einen String übergibst , und die Methode dir ein integer Wert mit der länge aller Zeichen zurückliefert ?

die Methode wird im Interface so deklariert
Java:
int length();

du könntest sie also in der Klasse BasePhrase einfach so implementieren

[EDIT]Selbstverständlich kannst du die Methode auch so implementieren das sie ein Array, oder eine ArrayList entgegennimmt [/EDIT]
Java:
public int length(String s){

  int length = 0;

//länge des Strings ohne leerzeichen etc ermitteln
 
  return length;
}

und so aus einer konkreten klasse darauf zugreifen

Java:
int wortlänge = new BasePhrase().length("Ich bin der String der der Methode übergeben wird, und liefere einen Integer zurück")
 
Zuletzt bearbeitet:

rme

Top Contributor
Hm? Das ist dann doch keine Implementierung des Interface. Die Signaturen der Methoden müssen übereinstimmen, d.h. insbesondere Anzahl und Typen der Parameter.
 

rme

Top Contributor
Wenn du eine Klasse ArrayPhrase hast, kann diese ganz viele Instanzvariablen, Hilfsmethoden etc. haben, die nicht im Interface sind. Das Interface schreibt nur vor, welche Methoden unbedingt vorhanden sein müssen. Du kannst also das Interface in ArrayPhrase implementieren und dabei in der length-Methode einfach deine interne Speicherung befragen, z.B. die Länge des Arrays zurückgeben oder so.

Edit: Das geht natürlich auch in einer abstrakten Basisklasse. Abstrakt heißt nur, dass man keine Instanzen davon erzeugen kann, weil einige Methoden nicht implementiert sind - es dürfen aber durchaus einige Methoden implementiert sein.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
mein Fehler:oops:, dann müsste er ja aber getter nutzen um an die Inhalte eines Arrays einer Unterklasse zu gelangen, und diese dann in der Methode der abstrakten Basisklasse nutzen zu können , oder liege ich jetzt daneben, oder er überschreibt die Methoden in einer der konkreten Unterklassen dementsprechend ?
 

rme

Top Contributor
Stimmt - sorry, ich fand die Aufgabenstellung zu lang und hab deshalb nur deine Antwort gelesen :D

Aber BasePhrase implementiert Phrase, d.h. man darf alle Methoden des Interfaces nutzen, um die gewünschte Methode zu implementieren. words() liefert die Anzahl der Wörter, word() liefert ein einzelnes Wort - Schleife zum Zählen, fertig :)
 
Zuletzt bearbeitet:
Stimmt - sorry, ich fand die Aufgabenstellung zu lang und hab deshalb nur deine Antwort gelesen :D

Aber BasePhrase implementiert Phrase, d.h. man darf alle Methoden des Interfaces nutzen, um die gewünschte Methode zu implementieren. words() liefert die Anzahl der Wörter, word() liefert ein einzelnes Wort - Schleife zum Zählen, fertig :)

Danke das hat mir eine Idee gegeben :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
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 Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
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
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
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
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
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
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 Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
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
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
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
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
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
StupidAttack Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse Java Basics - Anfänger-Themen 6
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
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
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
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
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