鸭子问题
要求:编写鸭子项目,展示各种鸭子(野鸭、北京鸭、玩具鸭)的各种行为信息(飞行、叫声)
传统解决思路
写鸭子抽象类,定义各种行为信息的方法,子类为各种鸭子,与父类行为相同则直接继承,不同则重写行为方法;
鸭子抽象类
public abstract class Duck {
public Duck() {
}
// 显示鸭子信息
public abstract void display();
public void quack() {
System.out.println("鸭子嘎嘎叫");
}
public void swim() {
System.out.println("鸭子会游泳");
}
public void fly() {
System.out.println("鸭子会飞");
}
}
子类实现
public class WildDuck extends Duck{
@Override
public void display() {
System.out.println("这是野鸭");
}
}
public class PekingDuck extends Duck{
@Override
public void display() {
System.out.println("这是北京鸭");
}
// 北京鸭不能飞,需要重写
@Override
public void fly() {
System.out.println("北京鸭不能飞");
}
}
public class ToyDuck extends Duck{
@Override
public void display() {
System.out.println("这是玩具鸭");
}
@Override
public void quack() {
System.out.println("玩具鸭不能叫");
}
@Override
public void fly() {
System.out.println("玩具鸭不能飞");
}
}
客户端调用
public class Client {
public static void main(String[] args) {
PekingDuck pekingDuck = new PekingDuck();
ToyDuck toyDuck = new ToyDuck