为什么我们不能访问java文件中的非公共类的方法?

时间:2014-05-23 08:07:20

标签: java class methods

class Basics415 {   

    public static void main_hooo(){
        out.println("1234");    
    }

    void main_ho(){
    }       
}

在另一个名为Basics5.java的文件中:

public class Basics5 extends Basics415{   

    public static void main(){
        main_hooo();        // We are accessing a public method of Class Basics415 
        main_ho();  // BUT WE CANNOT ACCESS A NON PUBLIC METHOD FROM SAME CLASS 
    }       
}

为什么我们无法访问main_ho(),而我们可以访问main_hooo()

为什么basic415.main_ho或Basic415.main_hooo在Basics5的主方法中不起作用?

3 个答案:

答案 0 :(得分:5)

因为这些方法是静态的,因此需要类来访问它们。

Basics4.method_Inside_Basics4()

所以,在你编辑了一堆代码后......

public class Basics5 extends Basics415{   

    public static void main(){
        // accessing a static method in a static context.
        Basics415.main_hooo();

        // accessing an instance method in a static context.
        final Basics415 b = new Basics415();
        b.main_ho();
    }       
}

答案 1 :(得分:1)

你的麻烦是主要 Basics5 是一个静态方法,静态方法是在类级别而不是在实例级别定义的,那么你就不能在静态方法中使用方法不是静态的。

答案 2 :(得分:-1)

您应该将method_Inside_Basics4方法作为Basics4.method_Inside_Basics4()访问。由于Basics5类扩展了Basics415类,它继承了main_hooo方法,可以从Basics5中进行评估。