Klassen und Vererbung

exercise No. 268

F:

Welche der nachfolgenden Aussagen sind richtig bzw. falsch?

  1. Eine Methode in einer abgeleiteten Klasse kann bei abweichender Signatur den Namen einer Methode der Superklasse haben. Dies ist keine Redefinition im Sinne von Vererbung, sondern Overloading.

  2. Alle Methoden einer abstrakten Klasse müssen abstrakt sein.

  3. Statische Methoden können nicht über Instanzen aufgerufen werden.

  4. Eine nicht-statische Methode kann auf statische Variablen einer Klasse zugreifen.

A:

  1. Wahr.

  2. Falsch, eine abstrakte Klasse kann sogar ausschließlich konkrete Methoden und Konstruktoren haben.

  3. Falsch, Gegenbeispiel String.valueOf(int):

    String s = "Hello";
    String intAsString;
    intAsString = s.valueOf(1234);      // Aufruf über Instanz
    intAsString = String.valueOf(1234); // Aufruf über Klasse
  4. Wahr.