Override
This commit is contained in:
@@ -10,12 +10,36 @@ import static org.eidecker.oca8lernen.general.PrimitiveOverloading.*;
|
|||||||
import static org.eidecker.oca8lernen.general.Overloading.*;
|
import static org.eidecker.oca8lernen.general.Overloading.*;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
class OverloadingTester {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStaticAccessFromSubclass() {
|
||||||
|
Overloading overloading = new SubOverloading();
|
||||||
|
System.out.println(overloading.staticString);
|
||||||
|
System.out.println(overloading.overrideStatic());
|
||||||
|
|
||||||
|
SubOverloading subOverloading = new SubOverloading();
|
||||||
|
System.out.println(subOverloading.staticString);
|
||||||
|
System.out.println(subOverloading.overrideStatic());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class Overloading {
|
public class Overloading {
|
||||||
|
|
||||||
|
public static String staticString = "Hallo Overloadung";
|
||||||
|
|
||||||
|
public static String overrideStatic() {
|
||||||
|
return "Hello static Overloading";
|
||||||
|
}
|
||||||
|
|
||||||
public final String overrideMe(List list) {
|
public final String overrideMe(List list) {
|
||||||
return list.toString();
|
return list.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String overrideMeNonFinal(List list) {
|
||||||
|
return "Oberklasse";
|
||||||
|
}
|
||||||
|
|
||||||
public String overloadMe() {
|
public String overloadMe() {
|
||||||
return "1";
|
return "1";
|
||||||
}
|
}
|
||||||
@@ -34,6 +58,20 @@ public class Overloading {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Diese Methode kann man nicht überschreiben.
|
||||||
|
*/
|
||||||
|
public final String tryToOverrideMe() {
|
||||||
|
return "I am from class Overloading";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Diese Methode kann man nicht überschreiben.
|
||||||
|
*/
|
||||||
|
private final String tryToOverrideMePrivate() {
|
||||||
|
return "I am from class Overloading";
|
||||||
|
}
|
||||||
|
|
||||||
// Rückgabewert irrelevant bei Überladen
|
// Rückgabewert irrelevant bei Überladen
|
||||||
/*public ArrayList overloadList(List list) {
|
/*public ArrayList overloadList(List list) {
|
||||||
return null;
|
return null;
|
||||||
@@ -45,6 +83,17 @@ public class Overloading {
|
|||||||
class SubOverloading extends Overloading {
|
class SubOverloading extends Overloading {
|
||||||
public static final String VARIANTE_CHARACTER = "Variante Character";
|
public static final String VARIANTE_CHARACTER = "Variante Character";
|
||||||
|
|
||||||
|
public static String staticString = "Hallo SubOverloading";
|
||||||
|
|
||||||
|
// public static String overrideStatic() {
|
||||||
|
// return "Hello static SubOverloading";
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @Override: Ist nicht Überschrieben, da anderer Parameter. Ist überladen!
|
||||||
|
public String overrideMeNonFinal(ArrayList list) {
|
||||||
|
return "Unterklasse";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Nicht erlaubt, da aus Oberklasse überladen. Rückgabewert kann nicht
|
* Nicht erlaubt, da aus Oberklasse überladen. Rückgabewert kann nicht
|
||||||
* überladen werden.
|
* überladen werden.
|
||||||
@@ -52,6 +101,8 @@ class SubOverloading extends Overloading {
|
|||||||
//public List overloadMe(List list) {
|
//public List overloadMe(List list) {
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Neue Methode, nicht überschrieben. Daher Access-Modifier in Ordnung.
|
* Neue Methode, nicht überschrieben. Daher Access-Modifier in Ordnung.
|
||||||
*/
|
*/
|
||||||
@@ -59,6 +110,24 @@ class SubOverloading extends Overloading {
|
|||||||
return "Geht";
|
return "Geht";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Geht, da Methode zwar in der Oberklasse, dort aber private ist und damit nicht sichtbar
|
||||||
|
*/
|
||||||
|
private final String tryToOverrideMePrivate() {
|
||||||
|
super.overrideStatic();
|
||||||
|
return "I am from class Overloading";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Geht nicht, auch wenn die Methode private ist und damit nicht von außen sichtbar.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// private String tryToOverrideMe() {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Nicht erlaubt, da Überschreiben verboten durch final.
|
* Nicht erlaubt, da Überschreiben verboten durch final.
|
||||||
* Sichtbarkeit ändert nichts.
|
* Sichtbarkeit ändert nichts.
|
||||||
|
|||||||
Reference in New Issue
Block a user