1.
编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。
可以弹奏的乐器包括二胡、钢琴和琵琶。
实现思路及关键代码:
1)定义乐器类Instrument,包括方法makeSound()
2)定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin
3)定义乐手类Musician,可以弹奏各种乐器play(Instrument i)
4)定义测试类,给乐手不同的乐器让他弹奏
public class Instrument {
public void makeSound(){
}
}
public class Erhu extends Instrument{
@Override
public void makeSound() {
System.out.println("二胡声音");
}
}
public class Piano extends Instrument{
@Override
public void makeSound() {
System.out.println("钢琴声音");
}
}
public class Violin extends Instrument{
public void makeSound() {
System.out.println("小提琴声音");
}
}
public class Musician {
public void play(Instrument i) {
i.makeSound();
}
}
public class Test {
public static void main(String [] args) {
Musician musician=new Musician();
musician.play(new Erhu());
musician.play(new Piano());
musician.play(new Violin());
}
}
2.
编写程序模拟“主人”喂养“宠物”的场景:
提示1:
主人类:Master
宠物类:Pet
eat()
宠物类子类:Dog、Cat、YingWu
重写宠物类的eat方法
提示2:
主人应该有喂养的方法:feed(Pet p)自行设计参数
feed中应该有一个参数----宠p.eat物对象
通过这个参数执行喂具体的哪只宠物
喂---调用宠物的eat方法
宠物应该有吃的方法:eat()
只要主人喂宠物,宠物就吃。
要求:主人类中只提供一个喂养方法feed(Pet p),要求达到可以喂养各种类型的宠物。
p.eat();
编写测试程序:
创建主人对象
创建各种宠物对象
调用主人的喂养方法feed(),喂养不同的宠物,观察执行结果。
public class Pet {
public void eat() {
}
}
public class Cat extends Pet{
@Override
public void eat() {
System.out.println("小猫来吃猫粮~");
}
}
public class Dog extends Pet{
@Override
public void eat() {
System.out.println("小鹦鹉来吃鸟粮~");
}
}
public class YingWu extends Pet{
@Override
public void eat() {
System.out.println("小狗来吃狗粮~");
}
}
public class Master {
public void feed(Pet Chongwu) {
Chongwu.eat();
}
}
public class Test {
public static void main(String [] args) {
Master master=new Master();
Dog dog=new Dog();
Cat cat=new Cat();
YingWu yingwu=new YingWu();
master.feed(dog);
master.feed(cat);
master.feed(yingwu);
}