首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多态Java

使用多态Java
EN

Stack Overflow用户
提问于 2018-02-20 01:20:48
回答 2查看 103关注 0票数 0

我的目标是通过创建testInstrument.java文件打印出所有乐器正在演奏。由于某种原因,我收到了System.out.println(all[i].play());的错误

testInstrument.java

代码语言:javascript
复制
package my_instruments;

public class testInstrument {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Guitar g = new Guitar();
        Flute f = new Flute();
        Piano p = new Piano();



        Instrument[] all = new Instrument[3];

        all[0] = g;
        all[1] = f;
        all[2] = p;

        for (int i=0; i<3; i++) {
            System.out.println(all[i].play());
        }


    }

}

Instrument.java

代码语言:javascript
复制
package my_instruments;

public class Instrument {

public Instrument() {

}

public void play() {
    System.out.println("Playing instrument");
}
}

Piano.java

代码语言:javascript
复制
package my_instruments;

public class Piano extends Instrument{
public Piano() {
    super();
}

public void play() {
    System.out.println("Playing piano");
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-20 01:29:52

试试这个:

代码语言:javascript
复制
for (int i=0; i<3; i++) {
       all[i].play();
    }

play方法已经在执行打印,并且不会返回任何要打印的内容。

票数 2
EN

Stack Overflow用户

发布于 2018-02-20 01:32:56

您的play方法()正在执行打印操作,尝试从System.out.println();循环中删除打印语句

代码语言:javascript
复制
for (int i=0; i<3; i++) {
    all[i].play();
}

代码语言:javascript
复制
for (Instrument i : all) {
    i.play();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48871128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档