java 抽象类题目

1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move()
这两个方法分别表示武器的攻击方式和移动方式。

(2)定义3个类:Tank,Flighter,WarShip都继承自Weapon,
分别用不同的方式实现Weapon类中的抽象方法。

编写测试程序main方法,创建多个不同武器的实例。并分别调用attack()和move()方法。
能用多态尽量使用多态。
public class Day19{
    public static void main(String[] args) {
           //向上转型
        Weapon w1 = new Tank() ;
        w1.lbb();
        //向下转型
        if (w1 instanceof Tank) {
            Tank t = (Tank)w1;
            System.out.println(1);
            t.attack();
            t.move();
        }
    }
 
    
}
//抽象类 
abstract class Weapon{
    //抽象方法表示武器的攻击方式 抽象方法没有方法体
    public abstract void attack();
    //抽象方法表示移动的移动方式
    public abstract void move();
    public void lbb() {
        System.out.println();
    }
    
}
 //(2)定义3个类:Tank 坦克,Flighter 飞机,WarShip 舰艇都继承自Weapon,
//分别用不同的方式实现Weapon类中的抽象方法。
//坦克类 Tank 继承抽象类Weapon 方法要重写 
class Tank extends Weapon {
    //attack方法表示Tank 武器的攻击方式
    public void attack() {
        System.out.println("坦克炮是坦克的主要武器,主要配备穿甲弹、破甲弹、杀伤爆破弹等弹种。");
    }
    //move方法表示Tank 坦克移动的移动方式
    public  void move() {
        System.out.println("坦克具有越野能力,通过履带移动,履带是由主动轮驱动、围绕着主动轮、负重轮、诱导轮和托带轮的柔性链环");
    }
}
//飞机类 Flighter 继承抽象类Weapon 方法要重写 
class Flighter extends Weapon {
    //attack方法表示Flighter 武器的攻击方式
    public void attack() {
        System.out.println("导弹");
        
    }
    //move方法表示Flighter 移动的移动方式
    public  void move() {
        System.out.println("在天上飞");
    }
    
}
//舰艇类 WarShip 继承抽象类Weapon 方法要重写 
class WarShip extends Weapon {
    //attack方法表示Weapon 武器的攻击方式
    public void attack() {
        System.out.println("导弹,鱼雷");
    }
    //move方法表示Weapon 坦克移动的移动方式
    public  void move() {
        System.out.println("在水上");
    }
    
}
    


public class Day19{
	public static void main(String[] args) {
		   //向上转型
		Weapon w1 = new Tank() ;
		w1.lbb();
		//向下转型
		if (w1 instanceof Tank) {
			Tank t = (Tank)w1;
			System.out.println(1);
			t.attack();
			t.move();
		}
	}
 
	
}
//抽象类 
abstract class Weapon{
	//抽象方法表示武器的攻击方式 抽象方法没有方法体
	public abstract void attack();
	//抽象方法表示移动的移动方式
	public abstract void move();
	public void lbb() {
		System.out.println();
	}
	
}
 //(2)定义3个类:Tank 坦克,Flighter 飞机,WarShip 舰艇都继承自Weapon,
//分别用不同的方式实现Weapon类中的抽象方法。
//坦克类 Tank 继承抽象类Weapon 方法要重写 
class Tank extends Weapon {
	//attack方法表示Tank 武器的攻击方式
	public void attack() {
		System.out.println("坦克炮是坦克的主要武器,主要配备穿甲弹、破甲弹、杀伤爆破弹等弹种。");
	}
	//move方法表示Tank 坦克移动的移动方式
	public  void move() {
		System.out.println("坦克具有越野能力,通过履带移动,履带是由主动轮驱动、围绕着主动轮、负重轮、诱导轮和托带轮的柔性链环");
	}
}
//飞机类 Flighter 继承抽象类Weapon 方法要重写 
class Flighter extends Weapon {
	//attack方法表示Flighter 武器的攻击方式
	public void attack() {
		System.out.println("导弹");
		
	}
	//move方法表示Flighter 移动的移动方式
	public  void move() {
		System.out.println("在天上飞");
	}
	
}
//舰艇类 WarShip 继承抽象类Weapon 方法要重写 
class WarShip extends Weapon {
	//attack方法表示Weapon 武器的攻击方式
	public void attack() {
		System.out.println("导弹,鱼雷");
	}
	//move方法表示Weapon 坦克移动的移动方式
	public  void move() {
		System.out.println("在水上");
	}
	
}
	

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值