OPM - Overriding a Private Method

A subclass should not contain a method with the same name and signature as in a superclass if these methods are declared to be private.

Wrong

class Animal {
    private void func () {}
}
class Elephant extends Animal {
    private void func () {}
}

Tip: Rename descendand class' method

Right

class Animal {
    private void func () {}
}
class Elephant extends Animal {
    private void extFunc () {}
}