public class Test {
public static void main(String[] args ) {
Musician musician = new Musician();
Erhu erhu = new Erhu();
new Musician(erhu);
musician.play();
Piano piano = new Piano();
new Musician(piano);
musician.play();
Violin violin = new Violin();
new Musician(violin);
musician.play();
}
}
class Musician{
Instrument i;
public Musician() {
}
public Musician(Instrument i ){
this.i = i;
}
public void play() {
i.makesound();
}
}
class Instrument{
public void makesound() {
}
}
class Erhu extends Instrument{
public void makesound() {
System.out.println("二胡的声音!!!!!");
}
}
class Piano extends Instrument{
public void makesound() {
System.out.println("钢琴的声音!!!!!");
}
}
class Violin extends Instrument{
public void makesound() {
System.out.println("小提琴的声音!!!!!");
}
}
多态和构造方法 空引用这弄不明白了 不知道为什么出现空指针异常
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
ZW钟文 2022-02-20 19:33关注调用构造方法Musician 目的是把erhu等传给i
调用构造方法会创建一个新的对象,两个对象互不干扰,你并没有将erhu传给你想调用paly方法的那个Musician对象。本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用