首页 新闻 搜索 专区 学院

Java继承与多态问题 急!!

1
悬赏园豆:10 [已解决问题] 解决于 2011-06-23 14:29

class Instrruement{

    public void play(){

    System.out.println(”Instrruement play“);

  }

  static void tune(Instrruement i){

    i.play();

  }

}

Class Grasp{

    public void play(){

    System.out.println(”Grasp play“);

public void main(String[] args)

    Instrruement flu=new Grasp();

    Instrruement.tune(flu);

}

这个程序的输出结果是什么?为什么?

指教一下这类问题的方法

请高人指教,尽快!!!

问题补充:

Grasp是继承Instrruement的

kingboy8808的主页 kingboy8808 | 初学一级 | 园豆:3
提问于:2011-06-20 18:53
< >
分享
最佳答案
0

结果应该是 Grasp play ,因为tune这个方法只是调用传入对象的play()方法,这里传入的是Grasp类型的对象,它的play方法则是显示“Grasp play";

另外,Grasp应该是继承自Instrruement的,虽然play方法传入的类型应该是Instrruement对象,但是Grasp是Instrruement的子类,play方法已经被重写。

收获园豆:10
二毛蛋 | 菜鸟二级 |园豆:220 | 2011-06-21 13:59
其他回答(1)
0

如果你的Grasp继承Instrruement,Instrruement play这个是结果,因为你调用了tune这个静态方法(这个方法应该是public的)。在这个方法里面它调用了自己类里面的play方法

蓦然回首的思念 | 园豆:900 (小虾三级) | 2011-06-21 11:55
结果应该是 Grasp play
支持(0) 反对(0) kingboy8808 | 园豆:3 (初学一级) | 2011-06-21 20:05
不会吧,我试过啊
支持(0) 反对(0) 蓦然回首的思念 | 园豆:900 (小虾三级) | 2011-06-21 20:50
我刚试过的
支持(0) 反对(0) kingboy8808 | 园豆:3 (初学一级) | 2011-06-21 20:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册