【发布时间】:2017-09-13 17:31:20
【问题描述】:
通过创建父类的实例,我们不能在其他包中访问它的继承方法,因为它不是直接继承。即使直接我们也不能使用非静态,因为我们的子方法是静态的,而父类方法不是。例如
package classacees;
public class Thread1 {
protected double sub(double a, double b) {
return (a - b);
}
还有……
package example;
import classacees.Thread1;
public class Ece extends Thread1 {
public static void main(String[] args) {
double n=sub(3,2); // error -> cant make a static reference to non static method.
System.out.println(n);
}
【问题讨论】:
-
您能先回答一下,为什么不将
sub创建为静态,为什么在子类中使用静态方法(在您的情况下为main)? -
不清楚你的问题是什么。
-
代替 double n=sub(3,2),试试 double n=Thread1.sub(3,2)
-
@nullpointer ,我的朋友问我同样的问题并指示我不要更改子类和父类代码。我该怎么回复他?
-
@Assafs 仍然出现错误,因为 Thread1 无法解析。
标签: java static-methods non-static