如何在其他包的静态方法(ex main 方法)中访问受保护的继承非静态方法?
How to access protected inherited non static method in static method(ex main method) of other package?
通过创建父实例class,我们无法在其他包中访问它的继承方法,因为它不是直接继承。即使直接我们也不能使用非静态,因为我们的子方法是静态的,而父 class 方法不是。前
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);
}
首先不能像double n=sub(3,2);
那样直接调用实例方法;为此你需要一个对象。
对于您的查询,您可以通过从子实例访问受保护的方法来实现 class:
public class Ece extends Thread1 {
public static void main(String[] args) {
Ece ece = new Ece();
double n = ece.sub(4, 9);
System.out.println(n);
}
}
希望这对您有所帮助..
通过创建父实例class,我们无法在其他包中访问它的继承方法,因为它不是直接继承。即使直接我们也不能使用非静态,因为我们的子方法是静态的,而父 class 方法不是。前
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);
}
首先不能像double n=sub(3,2);
那样直接调用实例方法;为此你需要一个对象。
对于您的查询,您可以通过从子实例访问受保护的方法来实现 class:
public class Ece extends Thread1 {
public static void main(String[] args) {
Ece ece = new Ece();
double n = ece.sub(4, 9);
System.out.println(n);
}
}
希望这对您有所帮助..