1、使用类与接口的知识完成如下要求:
(1)定义一个接口CanFly,描述会飞的方法public void fly();
(2)分别定义类飞机和鸟,实现CanFly接口。
(3)定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,让会飞的事物飞起来。
(4)然后在main方法中创建飞机对象和鸟对象,并在main方法中调用makeFly()方法,让飞机和鸟起飞。

一:利用引用类型(接口)作为形参传值

做题步骤:定义接口,定义实现类,定义测试类,初步定义 makeFly 方法,创建实现类对象,创建测试类对象调用 makeFly() 方法,将 CanFly 接口作为 makeFly() 方法的形参,将实现类对象传入,利用传入的对象去调用相应的 fly() 方法

package com.xx.test;
//接口
public interface CanFly {public abstract void fly();//飞的方式
}
//实现类:飞机
class Plane implements CanFly{@Overridepublic void fly() {//飞的方式// TODO Auto-generated method stubSystem.out.println("飞机靠燃油飞行");}
}
//实现类:鸟
class Bird implements CanFly{@Overridepublic void fly() {//飞的方式// TODO Auto-generated method stubSystem.out.println("鸟靠翅膀飞行");}
}
//测试类
class Test{public void makeFly(CanFly f){//参数设为接口类型,只能传实现类对象f.fly();System.out.println("起飞");}public static void main(String[] args) {Plane p = new Plane();//创建实现类对象Bird b = new Bird();Test t = new Test();//创建Test对象调用makeFly方法t.makeFly(p);t.makeFly(b);}
}

二:利用向上转型/引用类型提升

做题步骤:定义接口,定义实现类,定义测试类,定义 makeFly 方法,利用接口引用指向实现类对象(向上转型),创建测试类对象,以便调用 makeFly() 方法,用实现类对象直接调用 fly() 方法

package com.xx.test;
//接口
public interface CanFly {public abstract void fly();//飞的方式
}
//实现类:飞机
class Plane implements CanFly{@Overridepublic void fly() {//飞的方式// TODO Auto-generated method stubSystem.out.println("飞机靠燃油飞行");}
}
//实现类:鸟
class Bird implements CanFly{@Overridepublic void fly() {//飞的方式// TODO Auto-generated method stubSystem.out.println("鸟靠翅膀飞行");}
}
//测试类
class Test{public void makeFly(){System.out.println("起飞");}public static void main(String[] args) {CanFly  p = new Plane();CanFly  b = new Bird();Test t = new Test();//创建Test对象调用makeFly方法p.fly();t.makeFly();b.fly();t.makeFly();}
}

 说法不当之处还请大佬批评指正!!!

1、使用类与接口的知识完成如下要求:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞相关推荐

  1. /*按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞机

    /* 按要求编写一个Java应用程序程序: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接口. (3)定义一个测试类, ...

  2. 按要求编写一个Java应用程序程序: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接

    代码 /*第三题:按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口.(3)定义一个测 ...

  3. 定义一个接口CanFly,描述会飞的方法public void fly();

    1.使用类与接口的知识完成如下要求: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接口. (3)定义一个测试类,测试飞 ...

  4. SpringBoot项目中如何写一个测试类

    写好一个接口时,又不想重启服务,可以用测试类进行测试,引入目标接口,传入相应的参数 @RunWith(SpringJUnit4ClassRunner.class) @ActiveProfiles(&q ...

  5. 设计一个银行账户类,可以存钱、取钱、查钱、获取开户日期 内有测试类

    class bank 银行账户类 /* * 1.设计一个银行账户类,* 其中包括:账户信息:账号.姓名.开户时间.身份证号码.账户上的金额等成员.* 有:存款方法.取款方法.显示开户时间的方法.获得账 ...

  6. 怎样编写测试类测试分支_编写干净的测试–从配置开始

    怎样编写测试类测试分支 很难为干净的代码找到一个好的定义,因为我们每个人都有自己的单词clean的定义. 但是,有一个似乎是通用的定义: 简洁的代码易于阅读. 这可能会让您感到有些惊讶,但我认为该定义 ...

  7. 【六】ElasticSearch8.x Java API 实体类、工具类、测试类及常见问题

    ES 8.x 新版本中,Type 概念被弃用,所以新版 JavaAPI 也相应做出了改变,使用更加简便.ES 官方从 7.15 起开始建议使用新的 JavaAPI 1.依赖 <!-- elast ...

  8. sqlite数据库测试类基本使用

    2019独角兽企业重金招聘Python工程师标准>>> sqlite数据库测试类的基本使用 1.在清单里配置权限和引入单元测试框架 代码 <?xml version=" ...

  9. activiti5第二弹----使用activiti5提供的测试类进行测试

    在前文的基础上改变测试方式 package activiti_001;import org.activiti.engine.impl.test.PluggableActivitiTestCase; i ...

最新文章

  1. PHP支持模板,让ThinkPHP5支持模板主题(参照ThinkPHP3.2)
  2. python 学习 [day6]
  3. 10月13日云栖精选夜读:【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案...
  4. jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机
  5. oracle中执行自带脚本,oracle自带脚本
  6. df添加一行 python_Python为输出的数据绘制表格
  7. DockerFile入门指南
  8. VLAN aggregation(vlan聚合)配置
  9. .Net remoting, Webservice,WCF,Socket区别
  10. 2020印象笔记日记模板及更改印象笔记背景色教程
  11. 专业主义——大前研一
  12. 一键加速去不掉加锁的_三种方法让你的Service不被“一键加速”和系统杀掉
  13. 35岁以后的Android程序员出路在哪里?大牛最佳总结
  14. android gps 火星坐标,GPS真实坐标与火星地图坐标/百度地图坐标的转换
  15. uniapp 微信云开发静态网站和云函数跳转小程序
  16. Windows10企业版中安装Docker
  17. matlab海杂波统计建模及CFAR阈值分割
  18. 机器学习之Matplotlib
  19. 一、CAS单点登录详解
  20. 专题---讨论IGBT驱动电路[转子电源网]

热门文章

  1. LeetCode刷题-11
  2. devc++不兼容_最好的兼容HomeKit的智能灯泡
  3. java中protect是什么_Java中public、private、protecte、default、public void是什么意思 | 学步园...
  4. 四十一 毕设 (上) 我在软件园的那些日子里
  5. 无线接入认证服务器,搭建基于AD和IAS的802.1X无线认证系统
  6. 队列(queue)与双端队列(deque)—Python实现方法及回文词应用
  7. 基金 、社保和QFII等机构的重仓股排名评测
  8. 【设计模式】Java设计模式 - 享元模式
  9. Unity URP DOTS Pathfinding+Local avoidance
  10. android 标注 比例换算,android APP UI设计图标注、换算