Frage von mymym, 33

Java: Warum muss eine Klasse abstrakt sein, sobald eine Methode dieser Klasse abstrakt ist?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 12

Eine Eigenschaft von abstrakten Klassen ist, dass sie abstrakte Methoden enthalten kann. D.h. diese müssen nicht vollständig implementiert sein.

Eine normale Klasse sollte keine Implementierung einer Methode erzwingen. - Das ist Design-technisch von Java einfach so vorgesehen.

Dann hätte mein Objekt eine Methode, die nur definiert ist, aber keinen Programmablauf enthält (also eine abstrakte Methode). Was wenig Sinn macht, also darf man es nicht?

Sagen wir mal du hast eine abstrakte Klasse:

abstract class MyAbstractClass {

 abstract void test();

}

dann kannst du diese so implementieren, wenn du keinen Code darin haben möchtest:

class MyClass extends MyAbstractClass {

  void test() {
  }

}

Eine normale Klasse hat keine 'nicht ausformulierten' Methoden.  - Entsprechend kannst du diese aber auch leer implementieren. 

Antwort
von EightSix, 24

Du könntest sonst eine Instanz der Klasse erstellen und was würde dann mit der abstrakten Methode passieren?

Kommentar von mymym ,

Dann hätte mein Objekt eine Methode, die nur definiert ist, aber keinen Programmablauf enthält (also eine abstrakte Methode). Was wenig Sinn macht, also darf man es nicht?

Kommentar von rmnstr ,

Denk mal an Methoden mit Rückgabewert. Was sollte man von denen dann erwarten?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten