Gemeinsames Lernen

This commit is contained in:
Sebastian Eidecker
2019-11-13 22:19:42 +01:00
parent 5f6fd402cc
commit baa3ff518a
8 changed files with 694 additions and 7 deletions

View File

@@ -0,0 +1,46 @@
package org.eidecker.oca8lernen.general;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
/**
* @author seidecke.
*/
public class CastExceptions {
@Test
public void testCastExceptions() {
OberCast eigentlichUnter = new UnterCast();
OberCast wirklichOber = new OberCast();
UnterCast purUnter = new UnterCast();
Außerhalb außerhalb = new Außerhalb();
OberCast ober = purUnter;
UnterCast unter = (UnterCast) eigentlichUnter;
// Runtime-Exception, da innerhalb der Typenhierarchie
assertThrows(ClassCastException.class, () -> {
UnterCast unter3 = (UnterCast) wirklichOber;
});
// Compilefehler, da Versuch des Casts außerhalb der Typenhierarchie
// UnterCast unter2 = (UnterCast) außerhalb;
}
}
class OberCast {
}
class UnterCast extends OberCast {
}
class Außerhalb {
}