javazert

javazert

javazert


Set of flashcards Details

Flashcards 300
Language Deutsch
Category Computer Science
Level Other
Created / Updated 08.01.2020 / 08.01.2020
Weblink
https://card2brain.ch/box/20200108_javazert
Embed
<iframe src="https://card2brain.ch/box/20200108_javazert/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Können private Eigenschaften vererbt werden?

Nein, es können nur die Eigenschaften vererbt werden bei denen der accessmodifier auch passt (default nur im package, ..)

Welchen Konstruktor ruft der Compiler bei vererbung auf wenn kein parameterloser default-konstruktor existiert und die subklasse keinen expliziten call zu super(parameterlist) angibt?

Weiß er auch nicht -> Fehler!

Kann man mit super static-methoden/felder oder instance-methoden/felder aufrufen?

Beides

Werden erst static initializer oder erst instance initializer aufgerufen?

Erst static inicializer, dann instance initializer, dann constructor

Wie ist der Aufbau einer abstrakten Methode?

public abstract void abstractMethod();   --> ohne Methodenbody, der wird ja von der implemenentierenden Klasse implementiert

Kann man abstrakte Methoden der oberklasse einfach weglassen wenn man sie nicht möchte?

Nein, höchstens man macht die subklasse selbst abstract 

Was bedeutet final bei overriding?

final-classen können nicht "subclassed" werden, final methoden nicht overridden

Kann eine final-class abstracte Methoden beinhalten?

Nein, weil final-klassen nicht überschrieben werdenkönnen gibt es keine Möglichkeit die abstrakte Methoe darin zu überschreiben

Ist das ok? :

abstract class Softa {

  private abstract void recline();

}

Nein, private methoden können nicht überschrieben werden -> müssten in diesem fall aber wegen abstract

Funktioniert das?: 

abstract class Bed extends Furniture {

  static abstract void getWidth();

}

Nein, static-methoden können niemals überschrieben werden

Kann eine static final -methode versteckt werden? (hiding)

Nein, 

Kann eine Klasse abstrakte Methoden haben ohne dass die Klasse abstrakt ist?

Nein, anders rum geht es aber: Eine abstrakte klasse muss nicht zwingend abstrakte Methoden haben

Kann eine Abstrakte Klasse final methodods beinhalten?

Ja

Was ist eine private-method immer?

final

Wie ist die Reihenfolge der modifiers in einer methoden-deklaration?

<access modifier> <static> <final or abstract> <return type> methodName(<parameter list>)

Kann eine überschreibende Methode weniger offen sein (accessibility) als die zu überschreibende?

Nein, andersrum geht es aber (default zu public, ...)

Muss der Returntype bei überschreibenden Methoden derselbe sein?

Nein aber zumindest ein subtyp

Kann sich die Parameterliste bei überschreibenden Methoden ändern? (bspw. subtypen der types)

Nein

Kann eine überschreibende Methode eine "breitere" Exception werfen?

Nein, nur "kleinere"

ist es möglich eine static methode als nicht-static zu überschreiben bzw umgekehrt?

Nein!

Kann eine subklasse eine methode mit der gleichen Signatur wie eine privatemethode der superklasse haben?

ja

Kann man final-Felder "überschreiben" (also gleiches final feld wie in superklasse)?

Ja, final verhindert nur das ändern des Wertes im Feld

Kann zu Interfaces problemlos gecasted werden?

Der compiler sagt nichts da er nicht weiß ob ggfls eine Subklasse das interface implementiert. Zur laufzeit kann es aber ClassCastExceptions hageln 

(gilt nicht wenn die Klasse final ist, dann kann es keine subklasse geben die das Interface implementiert, d.h. sie muss es implementieren oder der Compiler mekkert!)

Was wäre der output hier?:

class Fruit{ static int count = 5; }

class Apple extends Fruit { static int count = 10; }

... System.out.println(new Apple().count);

System.out.println( ( (Fruit) new Apple()).count);

10, dann 5. Count wird in Apple geshaddowed, aber nicht wirklich überschrieben

Wie wird der instanceof - operator verwendet?

if ( referenceVariable instanceof Class) {}

Wann kann der instanceof operator nicht verwendet werden?

Wenn die variable sicher nicht von dem zu testenden Typ sein kann

Was gibt folgender Code aus?

String s = "hello";

Integer n = 10;

System.out.println(n == s);

Compiliert nicht --> Gleiche logik wie bei cast und instanceof, erst wird gecheckt ob es überhaupt möglich ist dass die beiden auf einen gleihcen Typ zeigen

Wenn instance-methoden überschrieben werden und in folgender Art und weise ein objekt angelegt wird, welche Version der instance-Methode wird dann ausgeführt  (sub oder superclass-implementierung? )

SuperClass obj = new SubClass();

obj.someMethod();

Die überschriebene, es wird immer die Methode aufgerufen die bei der Klasse des tatsächlichen objekts implementiert wurde

Kann ein Interface private methoden beinhalten (static/ non-static)?

Ja, seit Java 9

Kann ein Interface default methoden/ static methoden beinhalten?

Ja seit Java 8

Was sind alle Variablen in einem interface automatisch?

public, außer wenn explizit private 

static

final

Wie ereiche ich es, dass die Member eines Interfaces nur für members desselben packages sichtbar sind? (gibt ja nur public und private im Interface)

Das ganze Interface default machen(also public weglassen)

Kann man ein Interface als abstract deklarieren?

Ja, wäre aber redundant

Kann man instance-variablen in einem Interface haben?

Nein, da alle public static final sind nicht

Kann eine Methode in einem Interface default und abstract gleichzeitig sein?

Nein! 

Was bedeutet default bei Methoden im interface?

Dass sie implementiert sind im interface (sonst kann nur private einen Methoden-body haben)

Würde eine Methode wie folgt in einem Interface compilieren?

interface test {

  void testMethod() { doSomething(); } ...

Nein, wäre automatisch public static final  und nicht private/default, darf also keinen Methodenbody beinhalten

Können private-Methoden in einem Interface auch default sein?

Nein, da sie nicht von außen sichtbar sind

Können Methoden im Interface final sein?

Nein, sie müssen ja implementiert werden können( sind abstrakt)

Variablen hingegen sind immer final!!

Müssen alle abstrakten Methoden aus einem Interface implementiert werden?

Ja