JAVA封装多态简单项目管理练习--马戏团节目管理

Java项目,马戏团节目管理

@Author 运气不好军师师
2019-09-14

基类Animal,
Lion,Monkey,Parrot,Bear继承自Animal类
设置Interface接口IACT,
在这里插入图片描述

按照Animal,Bear,Lion,Monkey,Parrot,Clown,IACT,Test顺序依次列出.java文件如下:


public class Animal {
	public String name;//昵称
	public String age;//年龄
	
	public String getName() {
		return name;
	}

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

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	//方法:描述喜好
	public void love() {
		System.out.println("喜好");
	}
}

public class Bear extends Animal implements IACT{

//	super.name="Bill";
//	super.age='1岁';
	
	@Override
	public void skill() {
		// TODO Auto-generated method stub
		System.out.println("技能:挽着花篮,打着雨伞,自立走秀");
	}

	@Override
	public void act() {
		// TODO Auto-generated method stub
		System.out.println("动作");
	}
	
	@Override
		public void love() {
			// TODO Auto-generated method stub
		System.out.println("爱好:喜欢卖萌");
		}
}

public class Lion extends Animal implements IACT {

	String color="灰色",sex="公狮";//新增属性:颜色,性别。
	
	
	public String getColor() {
		return color;
	}


	public String getSex() {
		return sex;
	}


	@Override
	public void skill() {
		// TODO Auto-generated method stub
		System.out.println("技能:擅长钻火圈");
	}

	@Override
	public void act() {
		// TODO Auto-generated method stub
		System.out.println("shizi表演");
	}
	@Override
	public void love() {
		// TODO Auto-generated method stub
		System.out.println("爱好:喜欢吃各种肉类");
	}
}

public class Monkey extends Animal implements IACT {

	
	String type="金丝猴";//新增属性:品种。
	
	
	public String getType() {
		return type;
	}

	@Override
	public void skill() {
		// TODO Auto-generated method stub
		System.out.println("技能:骑独轮车过独木桥");
	}

	@Override
	public void act() {
		// TODO Auto-generated method stub
		System.out.println("monkey动作");
	}
	@Override
	public void love() {
		// TODO Auto-generated method stub
		System.out.println("爱好:喜欢模仿人的动作表情");
	}
}

public class Parrot extends Animal implements IACT {

	
	String type="牡丹鹦鹉";//属性:品种。
	
	public String getType() {
		return type;
	}

	@Override
	public void skill() {
		// TODO Auto-generated method stub
		System.out.println("技能:擅长模仿");
	}

	@Override
	public void act() {
		// TODO Auto-generated method stub
		System.out.println("parrota动作");
	}
	@Override
	public void love() {
		// TODO Auto-generated method stub
		System.out.println("爱好:喜欢吃坚果和松子");
	}
}

public class Clown implements IACT {

	static String name="Kahel";//名字
	static String years="5年";//艺龄
	
	public static String getName() {
		return name;
	}

	
	public static String getYears() {
		return years;
	}

	

	//方法:着装特点
	public void dress() {
		System.out.println("着装:身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆");
	}
	
	@Override
	public void skill() {
		// TODO Auto-generated method stub
		System.out.println("技能:脚踩高跷,进行魔术杂技表演");
	}
	@Override
	public void act() {
		// TODO Auto-generated method stub
		System.out.println("小丑的表演");
	}

}

接口IACT


public interface IACT {
	public void skill();
	public void act();
}

接下来的是测试包中的Test.java文件


import java.util.Scanner;

import ma_xi_tuan_jie_mu_guan_li.Animal;
import ma_xi_tuan_jie_mu_guan_li.Bear;
import ma_xi_tuan_jie_mu_guan_li.Clown;
import ma_xi_tuan_jie_mu_guan_li.Lion;
import ma_xi_tuan_jie_mu_guan_li.Monkey;
import ma_xi_tuan_jie_mu_guan_li.Parrot;

/**
 * 2019/9/13
 * @author GODlike_zhujing
 */


public class Test {
	
	//欢迎页面
		public static void come1(){
			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、小丑  	**********");
		}
		
		//观看询问
		public static void come2() {
			System.out.println("******  是否继续观看(1/0)******");
		}
		
		public static void err() {
			System.out.println("输入信息有误,请重新输入:");
		}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int watch=1;
//		int wnum;
		come1();
		Scanner sc=new Scanner(System.in);
		Scanner c=new Scanner(System.in);
		Scanner wnum=new Scanner(System.in);
		Bear ani1=new Bear();
		Lion ani2=new Lion();
		Monkey ani3=new Monkey();
		Parrot ani4=new Parrot();//创建各自的实例对象,方便后续的调用
		Clown peo=new Clown();
		
		while(watch==1) {
			switch(wnum.nextInt()) {
				case 1:{
				ani1.setName("Bill");
				ani1.setAge("1岁");
				System.out.println("表演者:"+ani1.getName());
				System.out.println("年龄:"+ani1.getAge());
				ani1.skill();
				ani1.love();
				}break;
				case 2:{
				ani2.setName("Lain");
				ani2.setAge("2岁");
				System.out.println("表演者:"+ani2.getName());
				System.out.println("年龄:"+ani2.getAge());
				System.out.println("性别:"+ani2.getSex());
				System.out.println("毛色:"+ani2.getColor());
				ani2.skill();
				ani2.love();
				}break;
				case 3:{
				ani3.setName("Tom");
				ani3.setAge("1岁");
				System.out.println("表演者:"+ani3.getName());
				System.out.println("年龄:"+ani3.getAge());
				System.out.println("品种:"+ani3.getType());
				ani3.skill();
				ani3.love();
				}break;
				case 4:{
				ani4.setName("Rose");
				ani4.setAge("1岁");
				System.out.println("表演者:"+ani4.getName());
				System.out.println("年龄:"+ani4.getAge());
				System.out.println("品种:"+ani4.getType());
				ani4.skill();
				ani4.love();
				}break;
				case 5:{
					System.out.println("表演者:"+peo.getName());
					System.out.println("年龄:"+peo.getYears());
					peo.dress();
					peo.skill();
				
				}break;
				default:{
					System.out.println("没有这个节目,请重新输入:");
					continue;
				}
			}
			come2();
			watch=sc.nextInt();
			
			if(watch==1) {
				come1();
				continue;
				}
			else {
//				err();
				while(watch!=0&&watch!=1) {
				err();
				watch=c.nextInt();
				if(watch==1)
				come1();
				}
				
			if(watch==0) {
				System.out.println("******欢迎下次光临******");
				break;
				}
			
			}
			
			
		}
		
//		if(watch==0) {
//			System.out.println("******欢迎下次光临******");
//			}
//		
		
		
	}

}

以下内容为测试结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虽然花了好长时间,但是很多缺陷,日后在考虑完善改进。
老师帮了不少忙,还蛮靠谱的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们来进行一道综合练习。 假设我们正在设计一个游戏,游戏中有多种角色,每种角色都有自己的属性和行为。我们来考虑如何使用Java继承和多态来实现这个游戏。 首先,我们可以定义一个抽象类`Character`,表示所有角色的基类,其中包含角色的基本属性和方法: ```java public abstract class Character { protected String name; // 角色名 protected int level; // 等级 protected int health; // 生命值 protected int mana; // 法力值 public Character(String name, int level, int health, int mana) { this.name = name; this.level = level; this.health = health; this.mana = mana; } public abstract void attack(); // 攻击方法 public abstract void defend(); // 防御方法 // getter和setter方法 // ... } ``` 然后,我们可以定义具体的角色类,例如战士`Warrior`和法师`Mage`,它们分别继承自`Character`类,并实现自己的攻击和防御方法: ```java public class Warrior extends Character { private int strength; // 力量属性 public Warrior(String name, int level, int health, int mana, int strength) { super(name, level, health, mana); this.strength = strength; } @Override public void attack() { System.out.println("战士" + name + "使用大剑攻击敌人!"); } @Override public void defend() { System.out.println("战士" + name + "使用盾牌防御敌人的攻击!"); } // getter和setter方法 // ... } public class Mage extends Character { private int intelligence; // 智力属性 public Mage(String name, int level, int health, int mana, int intelligence) { super(name, level, health, mana); this.intelligence = intelligence; } @Override public void attack() { System.out.println("法师" + name + "释放火球术攻击敌人!"); } @Override public void defend() { System.out.println("法师" + name + "使用魔法盾防御敌人的攻击!"); } // getter和setter方法 // ... } ``` 最后,我们可以在游戏中创建不同的角色对象,并进行攻击和防御操作: ```java public class Game { public static void main(String[] args) { Character warrior = new Warrior("张三", 10, 100, 50, 20); Character mage = new Mage("李四", 10, 80, 100, 30); warrior.attack(); mage.defend(); } } ``` 以上就是一个简单的继承和多态的综合练习,通过这个例子,我们可以发现继承和多态能够很好地实现代码的复用和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值