代码如下:

//小鸟类:

public abstract class Bird {
    //小鸟会飞,但是不同颜色的鸟飞行方式不一样
    public abstract void fly();

}

//BlueBird类:

/*
 * 蓝冰:蓝色小鸟,飞行方式:分成3个
 */

public class BlueBird extends Bird {
    //重写抽象方法
    @Override
    public void fly() {
        System.out.println("蓝冰,飞行过程可以一变三");
    }
}

//RedBird类:

/*
 * 红火:红色小鸟,飞行方式:正常,
 */
public class RedBird extends Bird {
    //重写抽象方法
    @Override
    public void fly() {
        System.out.println("红色的小鸟,正常飞行");
    }

}

//YellowBird类:

/*
 * 黄风:黄色小鸟,飞行方式:加速
 */
public class YellowBird extends Bird {
    //重写抽象方法
    @Override
    public void fly() {
        System.out.println("黄风,可以加速飞行");
    }

}

//Slingshot类:

/*
 * 弹弓类:有一个发射方法,将小鸟弹出去
 */
public class Slingshot {
    public void shot(Bird bird) {
        bird.fly();
    }

}

//测试Demo类:

public class Demo {
    public static void main(String[] args) {
        //创建一个弹弓
        Slingshot slingshot=new Slingshot();
        //创建红,黄,蓝各种鸟
        RedBird redBird=new RedBird();
        BlueBird blueBird=new BlueBird();
        YellowBird yellowBird=new YellowBird();
        //弹射
        slingshot.shot(redBird);
        slingshot.shot(blueBird);
        slingshot.shot(yellowBird);
    }
}

练习愤怒的小鸟(抽象类、多态、重写)相关推荐

  1. 愤怒的小鸟--------抽象类

    使用抽象类实现这个功能,定义一个Bird抽象类,包含4个方法,其中攻击设置为attack抽象方法 定义5种小鸟,继承Bird抽象类,重写attack,show抽象方法 定义一个Host类,使用父类作为 ...

  2. java学习笔记03-封装 继承 抽象类 多态 接口

    封装:在类的属性设置时 使用private将数据隐藏.不允许使用a.xingming来调用数据,可以设置get和set函数来对数据进行查看和修改(在其中添加if的判断语句来控制该参数的修改权限和读取权 ...

  3. 【C++】多态 —— 条件 | 虚函数重写 | 抽象类 | 多态的原理

    多态 1. 多态 2. 多态的定义和实现 2.1 多态的条件 2.2 虚函数重写的两个例外 2.2.1 协变 2.2.2 析构函数的重写 2.3 只有父类带 virtual 的情况 2.4 C++11 ...

  4. 【C++】多态(万字详解) —— 条件 | 虚函数重写 | 抽象类 | 多态的原理

  5. java 抽象类 多态_必学——Java抽象类、接口、多态

    1.用关键字abstract修饰类称为abstract类(抽象类) abstract class A { - } •abstract类不能用new运算符创建对象,必须产生其子类,由子类创建对象. •若 ...

  6. Dart中抽象类 多态以及接口

    Dart中抽象类:Drat抽象类主要是用于定义标准,子类可以继承抽象类,也可以实现抽象类接口. 1.抽象类通过abstract关键字来定义 2.Drat中的抽象方法不能用abstract声明,Dart ...

  7. java多态 重写(override)的调用优先级

    常规的说法是这样的: 在调用一个方法时,先从本类中查找看是否有对应的方法,如果没有再到父类中查看,看是否从父类继承来.否则就要对参数进行转型,转成父类之后看是否有对应的方法.总的来说,方法调用的优先级 ...

  8. Eclipse,静态,继承,封装,this,super,重写,重载,多态,final,冒泡排序,选择排序,抽象类,接口,内部类

    文章目录 Eclipse工具中java项目的工程结构 静态代码块的书写格式 静态代码块,构造代码块,构造方法的优先级 static关键字的特点 封装的概念 private关键字的特点 面向对象思想特点 ...

  9. java基础2:this、static、final、abstract关键字、代码块、生成API工具包、继承、多态、方法重载和重写,抽象类、接口、常见异常、java权限修饰符、选择排序思想和程序和内部类

    1.this关键字 this表示当前类对象的地址空间值的引用.就是说,this代表了new出来的对象 其最大作用就是解决了构造器中局部变量隐藏成员变量.即用this.变量名 = 变量名 区分. 2.s ...

  10. Java编程基础10——面向对象_多态抽象类接口

    1.多态的概述及其成员访问特点代码体现 A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提- 1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象. C:多态中的成员 ...

最新文章

  1. Windows Azure Cloud Service (19) 动态指定WCF的发布地址
  2. LJL-Solution-vss2005在项目中连接不上 解决方案
  3. python类介绍_python类介绍
  4. 异常检测-LocalOutlierFactor的理解与应用
  5. 今天同大家聊一下Git扩展
  6. VTK:绘图之SpiderPlot
  7. ABP入门系列(5)——展现层实现增删改查
  8. linux的进程/线程/协程系列5:协程的发展复兴与实现现状
  9. Angular 7和 .NET Core 2.2——全球天气(第2部分)
  10. pyqt5信号与槽连接的生命周期与对象引用的生命周期
  11. PLSQL 实现split
  12. c# 类似Excel的趋势线拟合
  13. 回忆2016:心怀梦想,奋力前行
  14. 如何使用C#把数据写到EXCEL文档中
  15. SP2-0734: unknown command beginning lsnrctl st... - rest of line ignored.
  16. 微信小程序基础(一) 文件结构配置项
  17. 苹果手机电池健康怎么看_MIUI12怎么看电池温度 小米手机电池损耗寿命查看方法...
  18. # CSS 背景设置
  19. 可用于电子书阅读器的开源阅读器软件项目
  20. PTA 7-63 黑白子交换棋局

热门文章

  1. APK文件如何查看源代码
  2. Linux_Oracle_11g_R2_RAC_安装配置详细过程
  3. python中for ch in是什么意思_python中for是什么
  4. python3 解压7z文件
  5. OpenGL 之 EGL 使用实践
  6. macOS High Sierra 10.13
  7. linux新增加swap空间,Linux增加swap空间的方法
  8. Oracle 绑定变量窥视
  9. java学习第一步-工欲善其事必先利其器
  10. mybatis存mysql没有时分秒_mybatis存入数据库后没有时分秒时间不全只有年月日