测试接口变形金刚

创建项目

建五个类 


代码如下:

package 变形金刚;

/**
 * 
 * 编写接口把类中的call更改为interface
 *
 */
public interface Weapon { //开始定义接口
//定义三个常量
int A1=565;
int A2=4545;
int A3=2456;

void kill();//公开的抽象方法

String getName();  //获取接口所接的方法名
int getA();    //获取子类,类别;

}




package 变形金刚;


public class Transformer {
/**
* 使用武器的接口
*/
private Weapon w;//定义接口变量为私有的W

public void setWeapon(Weapon w){
this.w=w;
}
public void attact(){   //定义攻击
System.out.println("变形金刚开始");
if(w==null){ //如果W为空没有接入武器则执行“用拳打”
System.out.println("用拳打");
return;
}
String wq=""; //武器类别字符串

switch(w.getA()){
case Weapon.A1:wq="冷兵器";break;
case Weapon.A2:wq="热兵器";break;
case Weapon.A3:wq="核武器";break;
}
System.out.println("使用"+wq+w.getName()+"进攻");
w.kill(); //调用抽象方法KILL方法
}

}


package 变形金刚;
/**
 * 
 * 定义剑的属性
 *
 */
public class Sword implements Weapon {


@Override
public void kill() {
System.out.println("拿起");

}


@Override
public String getName() {
return "大宝剑";
}


@Override
public int getA() {
return Weapon.A3;
}

}



package 变形金刚;
/**
 * 
 * 定义狼牙棒武器的属性;
 *
 */
public class Lyb implements Weapon {


@Override
public void kill() {
System.out.println("抡起");

}


@Override
public String getName() {
return "狼牙棒";
}


@Override
public int getA() {
return Weapon.A2;
}

}



package 变形金刚;
/**
 * 
 * 定义AK47。把public class AK47 后面加上继承implements Weapon
 *
 */
public class AK47 implements Weapon{


@Override
public void kill() {
System.out.println("玩枪");

}


@Override
public String getName() {
return "AK-47";
}


@Override
public int getA() {
return Weapon.A1;
}


}



package 变形金刚;


import java.util.Scanner;


public class Test1 {
public static void main(String[] args) {
//创建所有对像
Transformer t = new Transformer();  //与类Transformer对接
Sword s = new Sword();      //
AK47 a = new AK47(); //
Lyb l=new Lyb();
//取得了武器,接下来需要进攻方式,调用Transformer中的进攻方法
t.attact();

while(true){

double d=Math.random(); //d随机产生一个随机值,方便判断确定随机调用那种武器。0-1之间的小数
if(d<0.333){
t.setWeapon(s);   //调用武器剑
}else if(d<0.666){
t.setWeapon(a);   //调用AK47
}else{
t.setWeapon(l);    //调用狼牙棒
}
t.attact();//让变形金刚进攻
//按回车继续 
new Scanner(System.in).nextLine();
}
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值