//rename A#m() to k() -> must rename all m()
package p;
abstract class Abstract {
public abstract void k();
void caller(Abstract abstr, A a, Interface inter, Impl2 impl2) {
abstr.k();
a.k();
inter.k();
impl2.k();
}
}
class A extends Abstract {
public void k() { // from Abstract
}
}
interface Interface { //independent of Abstract
void k();
}
class Impl2 extends Abstract implements Interface {
public void k() { // from Abstract AND from Interface
}
}