需求说明:
模拟实现愤怒的小鸟,定义鸟叫的接口,定义"嗷嗷叫",“喳喳叫"两种实现类
定义抽象类,“鸟”,将接口定义为鸟的属性,并定义两个子类,“炸弹鸟”,“分裂鸟”
定义测试类,测试"炸弹鸟”,和"分裂鸟" 叫 和 飞 的行为

1.定义一个接口 鸟叫的接口

package PolymorphismAngryBird;// 鸟叫的接口
public interface BirdScream {// 接口中的行为void birdScreaming();
}

2.定义嗷嗷叫的实现类

package PolymorphismAngryBird;// 嗷嗷叫,实现了,鸟叫的接口
public class AoAo implements BirdScream{// 重写了方法@Overridepublic void birdScreaming() {System.out.println("嗷嗷叫");}
}

3.定义喳喳叫的实现类

package PolymorphismAngryBird;// 喳喳叫 实现了,鸟叫的方法
public class Zaza implements BirdScream{// 重写了,方法的行为@Overridepublic void birdScreaming() {System.out.println("喳喳叫");}
}
  1. 定义一个抽象类 鸟
package PolymorphismAngryBird;public abstract class Bird implements BirdScream{// 无参构造函数public Bird() {}// 鸟飞行为public void fly(){System.out.println("飞...");}
}

5.定义鸟的子类,炸弹鸟

package PolymorphismAngryBird;public class BoomBird extends Bird {public BoomBird() {}@Overridepublic void fly() {System.out.println("BoomBird is flying ...");}@Overridepublic void birdScreaming() {System.out.println("BoomBird screaming Aoao ... fire in the hole...");}
}

6.定义鸟的子类,分裂鸟

package PolymorphismAngryBird;public class SplitBird extends Bird{@Overridepublic void birdScreaming() {System.out.println("喳喳叫");}
}

7.定义一个测试类

package PolymorphismAngryBird;public class Test {public static void main(String[] args) {// 父类对象指向子类对象// 多态的写法,向上转型Bird boomBird = new BoomBird();// 调用子类的方法boomBird.fly();boomBird.birdScreaming();// 普通写法SplitBird splitBird = new SplitBird();splitBird.fly();splitBird.birdScreaming();}
}

8.输出的结果

BoomBird is flying ...
BoomBird screaming Aoao ... fire in the hole...
飞...
喳喳叫Process finished with exit code 0

Java 多态练习题之愤怒的小鸟,会飞会叫相关推荐

  1. Java 多态练习题

    1.D  (接口)  2.C 3.B 4.C 5.A 6.B.D 7.B(2和3) 编程题: 1.使用接口的知识,定义接口IFly,创建三个类Plane类.Bird类.Balloon类,分别重写接口的 ...

  2. java多态app_Java 入门教程 - Java 多态 - IT学院 - 中国软件协会智能应用服务分会...

    Java 多态 本小节我们来学习面向对象的最后一大特征--多态.多态是面向对象最重要的特性.我们将介绍多态的概念和特点,并带领大家实现一个多态的案例,你将了解到多态的实现条件.什么是向上转型以及什么是 ...

  3. java毕业设计——基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码)——愤怒的小鸟游戏

    基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Java awt+swing的愤怒的小鸟游戏设计与实现,文章末尾附有本毕 ...

  4. 解析java多态经典习题

    解析java多态经典习题 1 题目一 1.1 题目内容 编写程序实现乐手弹奏乐器.乐手可以弹奏不同的乐器从 而发出不同的声音. 可以弹奏的乐器包括二胡.钢琴和琵琶. 实现思路及关键代码: ①定义乐器类 ...

  5. Java多态 和 Python多态

    Java多态和Python多态 ava中的多态跟Python中的多态是有区别的. java中的多态定义: 多态存在的三个必要条件 一.要有继承: 二.要有重写: 三.父类引用指向子类对象 java 多 ...

  6. java多态父类引用指向子类对象为什么不能调用子类特有的方法?

    java多态父类引用指向子类对象为什么不能调用子类特有的方法? 我们在学习java面向对象时都会发现当父类引用指向子类对象不能调用子类特有的方法 首先我们需要了解一下java多态的具体体现 1.一个对 ...

  7. java多态 降低代码耦合性_深度分析:理解Java中的多态机制,一篇直接帮你掌握!...

    Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...

  8. Java多态-如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是"向上转型". 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   C ...

  9. 笔记1——C++多态与Java多态的异同

    最近参加网易笔试遇到一个问题,考察了C++ 多态特性,自己查了相关资料学习了相关用法. 一般程序调用的函数地址是在编译期决定了,但是具有多态特性的函数调用地址是在程序运行期才决定. C++与Java多 ...

  10. 关于java多态中覆盖的理解

    在前面一篇文章中,我已经介绍了关于java多态中重载的理解与规则 所以这篇文章主要介绍多态中的覆盖机制. 首先重载与覆盖除了表现方式不同之外,还有运行时间上的不同,重载是在编译期间就已经可以确定好调用 ...

最新文章

  1. 新框架ES-MAML:基于进化策略、简易的元学习方法
  2. Ubuntu安装docker-ce,vagrant,virtualbox步骤
  3. 【UVA1378】A Funny Stone Game (博弈-求SG值-输出方案)
  4. oracle sql语句怎么查询所有存储过程中是否包含某个注释?
  5. 1.%@Page%中的Codebehind、AutoEventWireup、Inherits有何作用?
  6. html5支持udp协议吗,HTML5的TCP和UDP Web Socket API草案定稿
  7. 图书馆可以提供哪些信息服务器,图书馆Web服务器的选择与配置.pdf
  8. HDU2048 神、上帝以及老天爷【递推】
  9. Time complexity analysis of algorithms
  10. Chrome浏览器扩展开发系列之十五:跨域访问的XMLHttpRequest对象
  11. 使用计算机模拟抛硬币,计算机模拟抛硬币实验学生任务单.pdf
  12. 计算机硬件实验报告怎么写,计算机硬件的认识与组装实验报告怎么写?
  13. 弘辽科技:拼多多top店铺是什么意思?怎么运营?
  14. 学习规律及其在学习中的应用
  15. MySQL 报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket
  16. 表格table标签的属性及使用方式
  17. 网站服务器该怎么选择呢?
  18. 东方财富、同花顺、大智慧、通达信的Level2行情接口哪个好?
  19. 基于C#制作一个桌面宠物
  20. TiDB沙箱环境初体验

热门文章

  1. 小公司老板的日常管理
  2. MySQL Group Replication的RECOVERING状态深度理解
  3. HDR:Recovering High Dynamic Range Radiance Maps from Photographs
  4. 210_Python+OpenCV_04_模糊(均值、中值、高斯)
  5. java开发手机app_java可以开发哪些软件
  6. DNS服务器解析问题
  7. [转]汽车ARM攒机指南
  8. 每天一道Java编程01-厚度为0.0001米的纸折叠多少次可以折成珠穆朗玛峰8848米的高度?
  9. 迅捷路由器设置AP模式
  10. Part2 正交、行列式、特征值