Override method
Пример переопределения метода.
package pro.bolshakov; public class Test1 { public static class A{ private void test(){ System.out.println("test A"); } } public static class B extends A{ protected void test(){ System.out.println("test B"); } } public static class C extends B{ public void test(){ System.out.println("test C"); } } public static void main(String[] args) { A a_a = new A(); a_a.test(); A a_b = new B(); a_b.test(); A a_c = new C(); a_c.test(); B b_b = new B(); b_b.test(); B b_c = new C(); b_c.test(); C c_c = new C(); c_c.test(); } }
Видимость метода можно только расширять.
Private можно увидеть только внутри, можно сказать, что пример некорректен с классом A. Но сделано для демонстрации.
Результат вывода:
test A (A = A)
test A (A = B)
test A (A = C)
test B (B = B)
test C (B = C)
test C (C = C)