我被告知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#是否也有这个问题?其他语言呢?