马戏团案例,面向对象小总结

public abstract class Animal {
    
    private String name;
    private int age;
    
    public Animal() {
        
    }
    
    public Animal(String name,int age) {
        this.name=name;
        this.age=age;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name=name;
    }
public interface IAct {
    
    String skill();
    void act();

}
public class Bear extends Animal implements IAct{
    
    public Bear() {
        
    }
    
    public Bear(String name,int age) {
        super(name,age);
    }
    
    @Override
    public String love() {
        return "喜欢卖萌";
    }
    
    @Override
    public String skill() {
        return "挽着花篮,打着雨伞,自立走秀";
    }
    
    @Override
    public void act() {
        System.out.println("表演者 :"+this.getName());
        System.out.println("年龄 :"+this.getAge());
        System.out.println("技能 :"+this.skill());
        System.out.println("爱好 :"+this.love());
    }
}
public class Lion extends Animal implements IAct{
    
    private String color;
    private String sex;
    
    public Lion() {
        
    }
    
    public Lion(String name,int age,String sex,String color) {
        super(name,age);
        this.setSex(sex);
        this.setColor(color);
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    
    @Override
    public String love() {
        return "喜欢吃各种肉类";
    }
    
    @Override
    public String skill() {
        return "擅长钻火圈";
    }
    
    @Override
    public void act() {
        System.out.println("表演者 :"+this.getName());
        System.out.println("年龄 :"+this.getAge());
        System.out.println("性别 :"+this.getSex());
        System.out.println("毛色 :"+this.getColor());
        System.out.println("技能 :"+this.skill());
        System.out.println("爱好 :"+this.love());
    }

}
public class Monkey extends Animal implements IAct{
    
    private String type;
    
    public Monkey(String name,int age,String type) {
        super(name,age);
        this.setType(type);
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    
    @Override
    public String love() {
        return "喜欢模仿人的动作表情";
    }
    
    @Override
    public String skill() {
        return "骑独轮车过独木桥";
    }
    
    @Override
    public void act() {
        System.out.println("表演者 :"+this.getName());
        System.out.println("年龄 :"+this.getAge());
        System.out.println("品种 :"+this.getType());
        System.out.println("技能 :"+this.skill());
        System.out.println("爱好 :"+this.love());
    }

}
public class Parrot extends Animal implements IAct{
    
    private String type;
    
    public Parrot(String name,int age,String type) {
        super(name,age);
        this.setType(type);
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    
    @Override
    public String love() {
        return "喜欢吃坚果和松子";
    }
    
    @Override
    public String skill() {
        return "擅长模仿";
    }
    
    @Override
    public void act() {
        System.out.println("表演者 :"+this.getName());
        System.out.println("年龄 :"+this.getAge());
        System.out.println("品种 :"+this.getType());
        System.out.println("技能 :"+this.skill());
        System.out.println("爱好 :"+this.love());
    }

}
public class Clown implements IAct{
    
    private String name;
    private String dress;
    private int years;
    
    public Clown() {
        
    }
    
    public Clown(String name,int years,String dress) {
        this.setName(name);
        this.setYears(years);
        this.setDress(dress);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getYears() {
        return years;
    }

    public void setYears(int years) {
        this.years = years;
    }
    
    public String getDress() {
        return dress;
    }

    public void setDress(String dress) {
        this.dress = dress;
    }
    
    public String love() {
        return null;
    }
    
    public String skill() {
        return "脚踩高跷。进行杂技魔术表演";
    }
    
    public void act() {
        System.out.println("表演者 :"+this.getName());
        System.out.println("艺龄 :"+this.getYears());
        System.out.println("着装 :"+this.love());
        System.out.println("技能 :"+this.skill());
    }
}
import java.util.Scanner;

public class Test {

//    菜单
    public void menu() {
        System.out.println("***************欢迎来到太阳马戏团****************");
        System.out.println("***************      请选择表演者     ****************");
        System.out.println("***************           1、棕熊         ****************");
        System.out.println("***************           2、狮子         ****************");
        System.out.println("***************           3、猴子         ****************");
        System.out.println("***************           4、鹦鹉         ****************");
        System.out.println("***************           5、小丑         ****************");
    }

//    实例化对象
    Bear bear = new Bear("Bill", 1);
    Lion lion = new Lion("Lain", 2, "公狮", "灰色");
    Monkey monkey = new Monkey("Tom", 1, "金丝猴");
    Parrot parrot = new Parrot("Rose", 1, "牡丹鹦鹉");
    Clown clown = new Clown("Kahle", 5, "身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆");

//    调用对象行为
    public void choose() {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        switch (input) {
        case 1:
            bear.act();
            break;
        case 2:
            lion.act();
            break;
        case 3:
            monkey.act();
            break;
        case 4:
            parrot.act();
            break;
        case 5:
            clown.act();
            break;
        default:
            System.out.println("***********输入信息不正确,请重新输入************");
            new Test().choose();
            break;
        }
    }

//    主方法,调用各种方法,测试项目
    @SuppressWarnings("resource")
    public static void main(String[] args) {

        Test test = new Test();
        // 主体
        while (true) {
            test.menu();
            test.choose();
            // 是否观看
            while (true) {
                System.out.println("\n***********       是否继续观看(1/0)      ************");
                Scanner sc = new Scanner(System.in);
                int input = sc.nextInt();
                if (input == 1)
                    break;
                else if (input == 0) {
                    System.out.println("***********           欢迎下次光临!          ************");
                    return ;
                } else
                    System.out.println("***********输入信息不正确,请重新输入************");
            }
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
)太阳马戏团是一个由表演者、杂技师、驯兽师和其他工作人员组成的团体。该团体可以通过面向对象的多态特征实现。 首先,表演者、杂技师和驯兽师都是太阳马戏团的员工,可以将它们抽象为一个基类Employee。该类包含员工的基本信息,例如姓名、年龄和工作经验等。 接下来,每个员工都有自己独特的技能,例如表演者会唱歌跳舞,杂技师会做各种特技,驯兽师会训练动物等。因此,可以为每个员工定义一个虚函数perform(),用于执行员工的特定技能。例如,表演者的perform()函数可以是唱歌跳舞,杂技师的perform()函数可以是做特技,驯兽师的perform()函数可以是训练动物。 此外,太阳马戏团还有其他工作人员,例如售票员和保安等。这些工作人员不需要perform()函数,因此可以将它们定义为Employee类的派生类,但不需要重写perform()函数。例如,售票员和保安可以分别定义为TicketSeller和SecurityGuard类,它们都是Employee类的派生类,但不需要定义perform()函数。 最后,太阳马戏团可以实现一个show()函数,用于执行整个马戏团的表演。该函数可以遍历所有的员工,并调用它们的perform()函数,以展示每个员工的技能。例如,show()函数可以遍历所有的员工,如果是表演者,就调用perform()函数唱歌跳舞;如果是杂技师,就调用perform()函数做特技;如果是驯兽师,就调用perform()函数训练动物;如果是售票员或保安,就不需要执行任何操作。 通过这种方式,太阳马戏团可以使用面向对象的多态特征实现,简化代码并提高代码的可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值