java接口与类之间继承小例题(1)
来源:互联网 发布:keras 安装 windows 编辑:程序博客网 时间:2024/06/13 06:12
自己的一个练习的小尝试,感觉很有意思,第一次自己打出来的小程序
1.定义一个canattack()接口,其中有一个attack()抽象方法
2.定义一个canmove()接口,其中有一个move()抽象方法
3.定义一个抽象类Weapon(),实现canattack()和canmove()两个接口,但不实现其中的抽象方法。
4.定义三个类,Tank,Fly,Ship,都继承Weapon分别用不同的方式实现 Weapon 类中的抽象方法
5.写一个类Army,代表一支军队,这个类有一个属性是Weapon数组w(用来存储该军队所拥有的所有武器)该类还
提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小
来初始化数组w。该类还提供一个方法addWeapon(Weapon wa),表示把参数wa所代表的武器加入到数组w中。在这
个类中还定义两个方法attackAll()和moveAll(),让w数组中的所有武器攻击和移动
6.定义一个主类来实现这些步骤。
package 尝试;import java.util.Scanner;interface Canattack{//定义Canattack接口void attack();}interface Canmove{//定义Canmove接口void move();}abstract class Weapon implements Canattack,Canmove{//定义Weapon抽象类实现两个接口public void attack(){}public void move(){}}class Tank extends Weapon{//不同的类实现不同的方法public void attack(){System.out.println("tank攻击!");}public void move(){System.out.println("tank移动!");}}class Fly extends Weapon{public void attack(){System.out.println("fly攻击!");}public void move(){System.out.println("fly移动!");}}class Ship extends Weapon{public void attack(){System.out.println("ship攻击!");}public void move(){System.out.println("ship移动!");}} class Army{//定义Army类int j=0;int n;Weapon[] w;//定义Weapon数组public int getMax() { return n; } public void setMax(int n){ this.n = n; }public Army(int n){this.n = n; w = new Weapon[n];System.out.println("您最多拥有"+n+"个武器!!!");} public void addWeapon(Weapon wa){ if(j<getMax()){ System.out.println("武器库足够!"+"已增加"+(j+1)+"个武器"); w[j]=wa; j++; } else{ System.out.println("警告:武器库已满!!!不能增加武器!!!"); } } public void attackAll(){//全军出击 System.out.println(); System.out.println("所有武器准备战斗!!!"); for(int i=0;i<j;i++){ System.out.print((i+1)+"号"); w[i].attack(); } } public void moveAll(){//三军前进System.out.println();System.out.println("所有武器准备移动!!!");for(int i=0;i<j;i++){System.out.print((i+1)+"号");w[i].move(); } } }class father { public static void main(String[] args){Scanner s = new Scanner(System.in);System.out.println("请输入武器库容量");int n = s.nextInt();Army a = new Army(n);System.out.println("输入yes添加武器,输入其他则不录入");String m = s.next();//添加武器while(m.equals("yes")){System.out.println("1.Tank 2.Fly 3.Ship");System.out.println("请选择:");int l=s.nextInt();//请选择武器种类if(l==1){a.addWeapon(new Tank());}else if(l==2){a.addWeapon(new Fly());}else if(l==3){a.addWeapon(new Ship()); }else{System.out.println("输入错误");}System.out.println("输入yes添加武器,输入其他则退出");m = s.next();}a.moveAll(); a.attackAll(); } }
阅读全文
0 0
- java接口与类之间继承小例题(1)
- Java 接口与类之间继承例题
- java例题学习:接口小例题
- java 类继承与接口继承
- 为什么Java语言中,类与类之间只能单根继承,类与接口可以多重实现,接口与接口却多根继承
- java继承与接口
- Java 继承与接口
- java继承与接口
- 类与类、类与接口、接口与接口之间的继承个数问题
- java基础--类与对象(继承与接口应用)
- 抽象类与接口之间的继承和实现关系
- java抽象类和接口和继承之间关系
- java抽象类和接口和继承之间关系
- java抽象类、接口和继承之间关系
- java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- Java中类的继承与接口
- 缓冲流和包装流
- <c:param> 标签的使用
- 快速排序qsort,sort函数用法
- 代理模式
- 多余的.git目录出现在vendor的包内
- java接口与类之间继承小例题(1)
- PythonNewHere--Python列表与元组基本函数与操作
- 事务
- hdu 1067 Gap
- redis主从复制
- 浮动、定位、display属性
- 暑假 D1 T1 新加密
- WMS琐碎
- Linux下安装tomcat