Example:
package com.elharo.foo;
public class A {
void test() {
System.out.println("Class A");
}
}
package com.elharo.bar;
public class B extends A {
void test() {
System.out.println("Class A");
}
}
Problem because:
Confusing if it was not intended to be overridden
A bug if it was intended to be overridden: wrong method is invoked
Severity: High. Often not detected at either compile or run time. Can be very hard to recognize.