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

2023-05-16

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{
	@Override
	public void fly() {//飞的方式
		// TODO Auto-generated method stub
		System.out.println("飞机靠燃油飞行");
	}
}
//实现类:鸟
class Bird implements CanFly{
	@Override
	public void fly() {//飞的方式
		// TODO Auto-generated method stub
		System.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{
	@Override
	public void fly() {//飞的方式
		// TODO Auto-generated method stub
		System.out.println("飞机靠燃油飞行");
	}
}
//实现类:鸟
class Bird implements CanFly{
	@Override
	public void fly() {//飞的方式
		// TODO Auto-generated method stub
		System.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();
	}
}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 仿真器的知识

    目前 xff0c 在线仿真器 In Circuit Emulator xff0c ICE 在嵌入式系统开发中被越来越多的工程师所采用 尤其是在国外嵌入式开发公司中 xff0c ICE是一种必备的调试工具 xff0c 被大规模地应用 xff0
  • UCOSII 消息队列、信号量集、软件定时器

    1 消息队列 xff1a 作用 xff1a 在任务之间传递多条信息 组成 xff1a 事件控制块 消息队列 消息 消息队列数据结构 队列控制块的结构定义 xff1a typedef struct os q struct os q OSQPt
  • 【参数量(Params)与计算量(FLOPs)的计算】

    文章目录 前言一 参数量的计算1 卷积层2 池化层3 全连接层 二 计算量的计算1 卷积层2 池化层3 全连接层 总结 前言 随着深度学习在工业领域的使用 xff0c 也随着深度学习的进步 xff0c 模型的复杂度对于衡量一个模型的好坏也至
  • git拉取更新代码时,自己写的代码被覆盖了

    对于一些已经修改好但未提交的文件 xff0c 在拉取时 xff0c 由于别的同事也刚好修改到了这个文件 xff0c 这时会产生冲突 xff0c 合并时可能会把自己改好的代码给覆盖掉了 我们可以在被修改的文件右键 xff08 以webstor
  • 学习树莓派的几个推荐站点

    1 树莓派 Pico 中文站 这里不仅有树莓派 Pico 开发板的说明文档 xff0c 还提供了完备的 RP2040 芯片资料 树莓派 Pico 中文站 2 pimylifeup 里面有很多树莓派教程 xff0c 步骤很详细 Raspber
  • ubantu中apt-get安装的依赖全部打包

    最近在适配国产化系统 xff0c 其中有arm和x86的 xff0c 虽然是国产化系统 xff0c 其实只是Ubuntu的包装罢了 xff1b 好不容易将海光型号的适配完毕 xff0c 就要进行测试 xff0c 但是这些海光环境并没有进行总
  • 你可能需要的vscode格式化代码失败解决办法

    按照网上的教程给vscode配置clang format自动格式化 xff0c 每一步都是按教程来的 xff0c 结果最后会报错 xff0c 显示 xff1a 格式化失败 xff0c 然后是一串 C xxxx vscode extensio
  • 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)

    目录 数据结构算法计算机语言计算机网络操作系统其他专业课 xff08 数据库 软件工程 计算机组成原理 密码学 xff09 数学 以下的专业相关基础问题 xff0c 是在2022年暑期准备面试过程中 xff0c 断断续续准备的 xff0c
  • vscode中配置git

    首先下载git 下载完成后复制git路径 xff0c 如 xff1a D Software Git cmd git exe 也可以打开cmd窗口输入 where git 然后打开vscode xff0c 打开设置 xff0c 搜索git p
  • 面对初学者的CAN总线入门教程(三)_CAN通信中帧、优先级、位填充、错误、位时序以及同步的介绍

    目录 1 数据链路层中的帧1 1 数据帧1 1 1 帧起始 xff08 标准 扩展格式相同 xff09 1 1 2 仲裁段1 1 3 控制段1 1 4 数据段 xff08 标准 扩展格式相同 xff09 1 1 5 CRC 段 xff08
  • 第一篇 OpenCv常用头文件#include<>介绍

    初学 OpenCv xff0c 在用VS2015编写程学的时 xff0c 有时候在编译过程中会出现红色波浪线 xff0c 极大的困扰着初学者心情 xff0c 这种情况作为新人的我深有体会 后来逐渐意识到 xff0c 问题主要出在编写的时候
  • 【转】控制理论结构图

    引用来源 xff1a https zhuanlan zhihu com p 146459377
  • 第十一章 安装RPM包或者安装源码包

    在windows下安装一个软件很轻松 xff0c 只要双击 exe的文件 xff0c 安装提示连续 下一步 即可 xff0c 然而linux系统下安装一个软件似乎并不那么轻松了 xff0c 因为我们不是在图形界面下 所以你要学会如何在lin
  • 一个简单的游戏源代码

    一个简单的游戏源代码 作者 xff1a 陈跃峰 出自 xff1a http blog csdn net mailbomb 实现一个简单的翻牌游戏 xff0c 每次最多翻开两个数字 xff0c 如果数字相同则消失 xff0c 否则两个数字不显
  • Java新手必读

    Java 新手必读 1 学习 Java 学什么 xff1f a Java 语法基础 xff1a 如基本数据类型 流程控制 数组等等 b 面向对象的概念 xff1a 理解类和对象的概念等等 c 开发工具 xff1a Jbuilder Ecli
  • Java编程那些事儿3——你适合学习程序设计吗?

    Java编程那些事儿3 你适合学习程序设计吗 xff1f 作者 xff1a 陈跃峰 出自 xff1a http blog csdn net mailbomb 程序设计是一个技术活 xff0c 所以不是适合所有的人 现在很多人听说程序设计人员
  • J2ME资源:各厂商SDK和模拟器下载地址

    现在支持 Java 的手机厂商很多 xff0c 现将常用的手机厂商 SDK 和下载地址说明一下 xff1a 1 Nokia Nokia 不愧为手机行业的老大 xff0c 对于 j2me 的支持也是一流的 xff0c 有专门的网站提供 SDK
  • 陈跃峰的个人简历

    简 历 基 本 信 息 姓 名 xff1a 陈跃峰性 别 xff1a 男 出生日期 xff1a 1980年01月23日居 住 地 xff1a 郑州市 工作年限 xff1a 五年以上 户 口 xff1a 河南 目前年薪 xff1a 8 10万
  • NokiaS40和S60开发平台1.0已知问题(翻译)

    NokiaS40 和 S60 开发平台 1 0 已知问题 翻译 作者 xff1a 陈跃峰 出自 xff1a http blog csdn net mailbomb 1 Nokia3300 不支 MMA 声音处理 类库 2 Image get
  • 自己动手清除Android系统中的不良程序

    自己动手清除Android系统中的不良程序 陈跃峰 2014 6 29 最近在使用我的Nexus7时 xff0c 总是经常莫名其妙的弹出一些广告弹窗 xff0c 还会自动下载一些应用程序 xff0c 还会在桌面上生成一个叫做 精彩应用 的图

随机推荐