This commit is contained in:
Sebastian Eidecker
2019-11-07 22:56:50 +01:00
parent 3b47113d17
commit e0dafd9d7c

View File

@@ -10,12 +10,36 @@ import static org.eidecker.oca8lernen.general.PrimitiveOverloading.*;
import static org.eidecker.oca8lernen.general.Overloading.*;
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 static String staticString = "Hallo Overloadung";
public static String overrideStatic() {
return "Hello static Overloading";
}
public final String overrideMe(List list) {
return list.toString();
}
public String overrideMeNonFinal(List list) {
return "Oberklasse";
}
public String overloadMe() {
return "1";
}
@@ -34,6 +58,20 @@ public class Overloading {
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
/*public ArrayList overloadList(List list) {
return null;
@@ -45,6 +83,17 @@ public class Overloading {
class SubOverloading extends Overloading {
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
* überladen werden.
@@ -52,6 +101,8 @@ class SubOverloading extends Overloading {
//public List overloadMe(List list) {
//}
/**
* Neue Methode, nicht überschrieben. Daher Access-Modifier in Ordnung.
*/
@@ -59,6 +110,24 @@ class SubOverloading extends Overloading {
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.
* Sichtbarkeit ändert nichts.