Javaの静的メソッドには継承がないと言われましたが、次のテストを試してみると
package test1;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
TB.ttt();
TB.ttt2();
}
}
package test1;
public class TA {
static public Boolean ttt()
{
System.out.println("TestInheritenceA");
return true;
}
static public String test ="ClassA";
}
package test1;
public class TB extends TA{
static public void ttt2(){
System.out.println(test);
}
}
印刷しました:
TestInheritenceA ClassA
したがって、Java静的メソッド(およびフィールド)には継承があります(クラスメソッドを呼び出そうとすると、継承チェーンに沿ってクラスメソッドを探します)。これはそうではありませんでしたか?そして、クラスメソッドのためにそのように台無しにされている継承オブジェクト指向言語はありますか?
明らかに静的メソッドは継承されますが、オーバーライドすることはできません。c#はその問題を共有しますか?他の言語はありますか?