我被告知 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);
}
}
它打印了:
测试继承A A类
java 静态方法(和字段)也具有继承性(如果您尝试调用类方法,它会沿着继承链寻找类方法)。以前不是这样吗?有没有像类方法那样困惑的继承 OO 语言?
所以显然静态方法是继承的但不能被覆盖,那么 c# 是否也有这个问题?会其他语言吗?
最佳答案
在 Java 中,字段和静态方法是继承的,但不能被覆盖——我相信这就是告诉你“它们不是继承的”的人的意思。
非私有(private)、非静态方法是继承的,可以被覆盖。
关于java - 类方法继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044827/