Java问题,不懂,求大神解析,问题如下:

classSuper{publicvoidm1(){System.out.println("m1()inSuper");}publicvoidm2(){System.ou... class Super{
public void m1(){
System.out.println("m1() in Super");
}
public void m2(){
System.out.println("m2() in Super");
}
}
class Sub extends Super{
public void m1(){
System.out.println("m1() in Sub");
super.m1();

}
public void m2(){
super.m1();
}
}
public class T1{
public static void main(String args[]){
Sub s=new Sub();
s.m1();
s.m2();
}
}
为什么这句
public void m2(){
super.m1();
}
引用不了m1,求解析!
展开
 我来答
飞鱼678
2015-03-29 · TA获得超过1052个赞
知道小有建树答主
回答量:708
采纳率:0%
帮助的人:533万
展开全部
因为m1()方法不是static修饰的。只有static修饰的方法或者属性(即类的静态方法或属性)才能直接用类名访问。
你定义的m1()方法是成员方法,只能通过new对象访问。
更多追问追答
追问
那为什么上一句可以调用?
追答
我试了一下,能调到的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式