java - 无法从子类访问方法
问题描述
我只是想使用 SubClass Class 中的 Method_In_SubClass() 方法,但我遇到了这些错误。我尝试将 Method_In_SubClass 更改为 Static 但仍然出现错误
public class Sub {
//Method 1 : Non-Static
public void nonstatictest(){
System.out.println("This is non-Static method.");
}
//Mehod 2 : Static
public static void statictest(){
System.out.println("This is static method.");
}
//SubClass
public class SubClass{
//Method in SubClass
public void Method_In_SubClass(){
System.out.println("This is Method in SubClass");
}
}
public static void main(String args[]){
Sub SubObject = new Sub();
SubClass SubClassobject = new SubClass();
SubObject.nonstatictest();
statictest();
SubClassobject.Method_In_SubClass();
}
}
错误:
Sub.java:25: error: non-static variable this cannot be referenced from a static context
SubClass SubClassobject = new SubClass();
^
1 error
然后我将 Method_In_SubClass 更改为 static 但收到此错误
Error :Illegal static declaration in inner class Sub.SubClass
public static void Method_In_SubClass(){
^
modifier 'static' is only allowed in constant variable declarations
Sub.java:25: error: non-static variable this cannot be referenced from a static context
SubClass SubClassobject = new SubClass();
解决方案
Main 和 SubClass 都是 Sub 类的成员,您不能引用 Sub 类的非静态成员,即 Main 中的 SubClass,它是静态成员。您需要将整个子类变为静态,而不仅仅是 Method_In_SubClass()。
推荐阅读
- php - 计算别名列的百分比
- c# - HttpPost 一个文件从 Node js 到 .net Core C#
- c++ - 两个项目之间的编码变化
- python - 将 numpy.ndarray 输出为 csr 文件
- javascript - 邮递员写信到控制台但想要 CSV?
- c++ - 如何在 std::set 中获得严格低于上限的值?
- python - 从 FITS 图像返回 WCS 时遇到问题
- javascript - 想在对象数组中使用数组键作为新属性 javascript
- reactjs - 带有功能组件和钩子的 React 应用程序中的数据流
- dart - 无法在 Raspberry Pi 零 W 上加载 Dart SDK