Java abstrakte Klassen, die werfen
Wenn ich eine abstrakte Klasse mit der folgenden Funktion habe -
abstract class A{
void foo(String s) throws Exception{
throw new Exception("exception!");
}
}
Und dann noch eine Klasse, die die abstrakte Klasse erweitert und eine eigene Version von foo implementiert -
class B extends A{
void foo(String s){
//do stuff that does *not* throw an exception
}
}
Wird dies zu Problemen führen? Speziell im folgenden Testfall -
Collection<A> col = new Collection<A>();
B b = new B();
col.add(b);
for(A a : col){
a.foo();
}
Ich habe ein paar Tests gemacht und nichts scheint kaputt zu sein, aber ich verstehe nicht, warum B's foo heißt und nicht A's