abstrakte Methode Klausurfrage

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

abstrakte Methode Klausurfrage
In der Klausur WS 2013 steht die Frage: In Java muss jede abstrakte Methode in mindestens einer Unterklasse implementiert wer-
den, sonst lasst sich das Programm nicht ubersetzen. Die Antwort laut Loesung ist “falsch”

habe das mal ausprobiert und kriege aber ein compilerfehler wenn ich in der unterklasse keine Methode implementier. Mit dem Code kommt die Fehlermeldung “beta is not abstract and does not override abstract method regen() in Ten”

abstract class Ten {

	int x;

	
	public Ten(int x){
	this.x = x;
	}
	
	abstract void regen();

	}
	
	class beta extends Ten{
		
		public beta(){
			super(3);
			}

	}

Edit: Ok habs rausgefunden: es geht um das Woertchen “mindestens” die methode muss aber in allen unterklassen implementiert werden. O.o


Nein. Die abstrakten Methoden muessen nur in den Klassen implementiert sein, welche instanziiert werden. Wenn eine abstrakte Methode in einer Unterklasse nicht definiert wird, muss diese Unterklasse allerdings auch wieder abstrakt sein.


Ok aber es gibt doch nur einen Typ Klasse der nicht instanziiert wird, die nested class? das heist nur in einer nested class brauch sie nicht implementiert werden?


Wie xenexi schon sagte:

Deine Klasse [m]beta[/m] ist nicht abstrakt.