オーバーライドとstaticメソッド
こんなコードがあって。
public class Hoge { public static void main(String[] args) { C c = new C(); c.method(); } } class A { static void method1() { System.out.println("A method1"); } void method2() { System.out.println("A method2"); } } class B extends A { void method() { method1(); method2(); } } class C extends B { static void method1() { System.out.println("C method1"); } void method2() { System.out.println("C method2"); } }
Hogeのmainを実行したらどうなるか。
わかるひとはすぐわかるんだけども。
こう。
A method1 C method2
method1をオーバーライドした気になってるかもしれないけど、staticメソッドは出来ないんだ。めんどくさいから、staticメソッドは継承したら使わないのがいいんじゃないかな。