В отличии от перегрузки методов, при переопределении создаются методы с одинаковыми сигнатурами и атрибутами. Тогда, в зависимости от того, через какой объект (родительского класса, либо дочернего) мы можем обратиться к разным методам с одинаковыми именами.
Перегрузка и переопределение методов
class A{ void show(){ System.out.println(‘Метод класса A’); } } class B extends A{ void show(String msg){ System.out.println(msg); } } class C extends B{ void show(){ System.out.println(‘Метод класса C’); } } class MultiCall{ public static void main(String args[]){ A obj1 = new A(); B obj2 = new B(); C obj3 = new C(); obj1.show(); obj2.show(); obj2.show(‘Класс B’); obj3.show(); obj3.show(‘Класс С’); } }