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.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.
|
||||
|
||||
Reference in New Issue
Block a user