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("在水上");}}

java 抽象类题目相关推荐

  1. java 抽象类 方法_java 抽象类

    Java为什么使用抽象类和接口 Java接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现.OOP面向对象的编程,如果要提高程序的复用率,增加程序的可维护性,可扩展性,就必须是 ...

  2. Java面试题目大汇总(附参考答案)

    足足准备了长达3个月的面试,终于在上周拿到了阿里的offer! 博主汇总整理了一份我面试之前看的一些Java面试题目,可以说是非常详细! 分享给大家,希望对正在面试Java岗位的朋友有帮助哈~~ (文 ...

  3. 计算机等级考试java题型_全国计算机等级考试二级JAVA笔试题目

    全国计算机等级考试二级JAVA笔试题目 导语:Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.下面是计算机二级考试Java语言的模拟试题 ...

  4. java抽象类例子_java抽象类经典实例分享

    在这之前有给大家详细的介绍过java抽象类,相信很多人应该都比较了解了,那么下面就要继续来给大家分享一个java抽象类的实例. 题目: 不同几何图形的面积计算公式是不一样的,可是,它们具有的特性是一样 ...

  5. 考研JAVA复试题目整理

    JAVA复试题目自整理 大家觉得有用点点赞啊可以升级升到3级我就可以自定义标签了谢谢~ 说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请 ...

  6. 2021年Java面试题目最新总结【90%面试会踩的坑】

    学会java技术之后大家面临的最多的问题就是面试这关,求职面试java岗位是否能够成功是直接影响我们的工作机会的,所以对于Java程序员面试你准备好了吗?今天小编汇总了一下关于Java程序员面试,90 ...

  7. Java接口和Java抽象类

    Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方,才是它们的最佳位置呢?把它们比较一下,你就可以发现了. 1.Java接口和Java抽象类最大的一个区别,就在于Java ...

  8. Java接口和Java抽象类的认识

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  9. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

最新文章

  1. 互联网垂直社交创业新形态——ThinkSNS
  2. Lucene查询语法详解
  3. 使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息
  4. 前缀表达式后缀表达式_五分钟小知识之什么是后缀表达式
  5. 字符串操作 c语言,C语言字符串操作(示例代码)
  6. 【洛谷比赛】你的名字。
  7. C#LeetCode刷题之#766-托普利茨矩阵(Toeplitz Matrix)
  8. linux网络代码结构
  9. css 立体管道图_高层住宅管道井内密集管线施工方法研究
  10. CVPR2022 Oral | CosFace、ArcFace的大统一升级,AdaFace解决低质量图像人脸识
  11. Java旅游管理系统本科生毕业设计开题报告
  12. VBB 3.8.4 XSS
  13. 学习python笔记01
  14. 串行加法器和并行加法器_N位并行加法器(4位二进制加法器和减法器)
  15. 树莓派获取SHT20温湿度
  16. 《阿特拉斯耸耸肩》节选:互害与甩锅的反敏捷组织
  17. 常见的计算机网络安全威胁的表现形式,网络安全威胁的的表现形式有哪些?
  18. D3学习笔记之常用比例尺
  19. 微信小程序(二)首页之搜索框
  20. 服务器操作系统tco的英文全称,云服务器ECS的英文全称

热门文章

  1. wdr6500 php,WDR6500成功刷上OpenWrt!!!附上教程。
  2. 不用找了,学习BM算法,这篇就够了(思路+详注代码)
  3. 有了屏幕指纹和AI加持,这部手机会成为新一代爆款么?
  4. 维度建模的事实表设计
  5. 少儿编程软件python_Python编程软件下载
  6. 数据库连接字符串的设置与读取
  7. 如何修改文件的创建时间(回忆录)
  8. 如何修改文件的创建时间?
  9. WIFI管家实现原理:局域网设备扫描
  10. UG翼型参数化建模方法及代码