第三章:多态

一、多态

1、什么是多态?

解析:不同的对象对于同一个操作,做出的响应不同

         具有表现多种形态的能力的特征

2、使用多态的优点

解析:为了实现统一调用

一个小例子:<父类类型作为参数>

父类(Pet) 子类(Gog,Penguin) 主人类(Master)测试类(Test)

Pet

public abstract class Pet {public abstract void eat();}

Dog

复制代码
复制代码
   public class Dog extends Pet{@Overridepublic void eat() {System.out.println("够吃骨头");}
复制代码
复制代码

Penguin 

复制代码
复制代码
   public class Penguin extends Pet {@Overridepublic void eat() {System.out.println("企鹅吃fish");}
复制代码
复制代码

Master

复制代码
复制代码
public class Master {//父类类型作为参数
public void feed(Pet pet)
{pet.eat();}}
复制代码
复制代码

Test

复制代码
复制代码
    public static void main(String[] args) {Master master=new Master();Pet pet=new Dog();master.feed(pet);}
复制代码
复制代码

二、子类到父类的转换(向上转型)

规则:

① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换

② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

③ 通过父类引用变量无法调用子类特有的方法

三、java中两种实现和使用多态的方式

① 使用父类作为方法形参

② 使用父类作为方法返回值

四、父类到子类的转换(向下转型)

将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换

五、instanceof运算符

语法:

对象 instanceof 类或接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false

注:

① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误

② instanceof通常和强制类型转换结合使用


 

六、接口

在java语言中,接口有两种意思:

①概念性的接口,即系统对外提供的所有服务

②指用interface关键字定义的接口,也称为接口类型

七、特征

① 接口中的成员变量默认都是public、static、final类型的,必须被显示初始化

②接口中的方法默认都是public、abstract类型的

③接口没有构造方法,不能被实例化

④一个接口不能实现另一个接口,但它可以继承多个其他接口

⑤接口必须通过类来实现它的抽象方法

⑥ 一个类只能继承一个直接父类,但能实现多个接口

八、语法

① 修饰符 interface 接口名 extends 父接口1,父接口2....{

//常量定义

//方法定义

}

② class 类名 extends 父类名 implements 接口1,接口2....{

//类成员

}

一个小例子:

使用java接口来模拟生活中的USB接口

1、先定义USB接口,通过service()方法提供服务

public interface Usbinterface{void service();
}

2、定义U盘类,实现USB接口中的service()方法,进行数据传输

复制代码
复制代码
public class UDisk implementd UsbInterface{
public void service()
{
System.out.println("连接USB口,开始数据传输!");}}
复制代码
复制代码

3、定义USB风扇类,实现USB接口中的service()方法,获得电流使风扇转动

复制代码
复制代码
public class UsbFan implementd UsbInterface{
public void service()
{
System.out.println("连接USB口,获得电流,风扇开始转动!");}}
复制代码
复制代码

4、编写测试类

复制代码
复制代码
public class Test{
public static void main(String[]args){
//u盘
UsbInterface uDisk=new UDisk();
uDisk.service();//USB风扇
UsbInterface usbFan=new UsbFan();
usbFan.service();}}
复制代码
复制代码

转载于:https://www.cnblogs.com/WuXuanKun/p/5542359.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

请检查virtualboxapi是否正确安装_电机行业安装绝缘轴承规范

1.安装前检查轴承安装前&#xff0c;请检查滚动体表面是否有毛刺&#xff0c;划痕或裂缝。 轴承的径向游隙和轴向游隙是否合格&#xff0c;通常仅测量径向游隙。 其次&#xff0c;检查轴承型号是否正确。 有关滚动轴承的径向游隙标准&#xff0c;请参见下表。 例如&#xff1a;…

matlab时域离散信号与系统,时域离散信号和系统的频域分析

信号与系统的分析方法有两种&#xff1a;时域分析方法和频域分析方法。在连续时间信号与系统中&#xff0c;信号一般用连续变量时间t的函数表示&#xff0c;系统用微分方程描述&#xff0c;其频域分析方法是拉普拉斯变换和傅立叶变换。在时域离散信号与系统中&#xff0c;信号用…

genymotion 此应用与您的手机不兼容

2019独角兽企业重金招聘Python工程师标准>>> 安装arm芯片的转换包&#xff0c;转换包的下载地址&#xff1a;http://pan.baidu.com/s/1dE2EqAH 只要把下载下来的压缩包拖动到模拟器中&#xff0c;点击确定后安装。 安装完成后&#xff0c;需要重启模拟器。 转载于:h…

安卓按钮设置背景颜色不管用_MIUI10新功能:时钟背景黑白自选、公交卡自定义时段唤起...

经历清明假与米粉节后&#xff0c;MIUI10恢复开挂模式&#xff0c;开发版每周给大家推送新功能。本期主要跟大家分享两个要点&#xff0c;其一是时钟背景颜色支持用户选择黑色或者白色&#xff0c;其二是NFC刷卡支持设置优先唤醒时间&#xff0c;降低手工切换操作。■时钟背景可…

数字电视 星座图 matlab,数字电视 MER 及星座图剖析

向天明中国电子测量与仪器学会委员随着数字电视的发展&#xff0c;人们越来越重视数字电视的质量问题&#xff0c;数字电视质量的好坏首先是数字电视信号的质量&#xff0c;因此数字电视信号的分析、测试非常重要&#xff0c;本文重点对数字电视信号的MER及星座图剖析。1、广义…

关于ASP.NET 中的主题

2019独角兽企业重金招聘Python工程师标准>>> 网站的外观是否美观将直接决定其受欢迎的程度&#xff0c;这就意味着网站在开发过程中设计和实现美观实用的用户界面是非常重要的。 在ASP.net 2.0之前主要是用样式表css来实现外观设计。但在ASP.Net 2.0之后&#xff0c…

傅里叶变换matlab案例,基于matlab的傅里叶变换

例子1作用&#xff1a;使用傅里叶变换找出隐藏在噪声中的信号的频率成分。(指定信号的参数&#xff0c;采样频率为1 kHz&#xff0c;信号持续时间为1秒。)Fs 1000; % 采样频率T 1/Fs; % 采样周期L 1000; % 信号长度t (0:L-1)*T; % 时间向量%%形成一个信号&#xff0c;包含振…

WEB渗透—PHP反序列化(八)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

如何部署 Hyperic ,使得从内网监测外网服务器

2019独角兽企业重金招聘Python工程师标准>>> 环境介绍&#xff1a; 外网服务器&#xff1a; www.InnovateDigital.com 用户名/密码 test/test 内网服务器&#xff1a;192.168.1.125 操作系统都是 Centos 7 64bit 过程&#xff1a; 下载 Hyperic 5.8.5 &#xff0c…

tcp 发送 最大数据量_网络基础知识夯实总结(三):TCP协议

近期分享的网络知识包括HTTP协议、DNS协议、HTTPS协议、TCP协议、IP协议、TCP/IP、Web攻击及其他协议。今天内容是TCP协议。TCP协议1. 传输层2. 作用提供可靠的字节流服务3. 大块数据分割成报文段(segment)4. 三次握手1) 发送端发带SYN标志的数据包给对方。2) 接收端收到后&…

安卓开发语言php,go语言支持安卓开发吗

go语言支持安卓开发。使用golang开发android需要下载安装gomobile&#xff0c;然后有两种开发方式&#xff0c;分别为&#xff1a;1、原生应用开发&#xff1b;2、混合绑定开发。本教程操作环境&#xff1a;windows10系统、GO 1.11.2、thinkpad t480电脑。大概14年的时候go语言…

解决python连接mysql,UTF-8乱码问题

在测试“Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序”的程序时&#xff0c;从MySQL中读取的中文输出到网页显示都是问号&#xff0c;如下图&#xff1a; 解决方法&#xff1a; 产生乱码问题&#xff0c;通常都是由于几方面的编码不统一导致的&#x…

Crawler - 如何爬取列表后进行文章的爬取

2019独角兽企业重金招聘Python工程师标准>>> 已知BUG&#xff1a;(version:5) 1-爬取后生成的XML默认编码是Java环境决定导入数据库可能出问题 方法修改xml编码后导入 重点CL 和 CI命令 CL 是爬取List列表 会通过file生成文件 CI 中file是CL执行后生存的File文件 CL…

程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!

欢迎关注专栏&#xff1a;里面定期分享Android和Flutter架构技术知识点及解析&#xff0c;还会不断更新的BATJ面试专题&#xff0c;欢迎大家前来探讨交流&#xff0c;如有好的文章也欢迎投稿。Android高级进阶​zhuanlan.zhihu.com让我来告诉你&#xff0c;35岁以上的人都在干什…

opencv入门_【OpenCV入门之十八】通过形态学操作提取水平与垂直线

小白导读学习计算机视觉最重要的能力应该就是编程了&#xff0c;为了帮助小伙伴尽快入门计算机视觉&#xff0c;小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善&#xff0c;主要是借鉴了更多大神的文章&#xff0c;希望让小伙伴更加容易理解。如果小伙伴觉…

【译】NoClassDefFoundError和ClassNotFoundException的不同

本文翻译自&#xff1a;Difference between NoClassDefFoundError vs ClassNotFoundExcepiton in Java 如果JVM或者ClassLoader在加载类时找不到对应的类&#xff0c;就会引发NoClassDefFoundError和ClassNotFoundException&#xff0c;这两种错误都非常严重。由于不同的ClassL…

Ubuntu上安装Robomongo及添加到启动器

到目前为止&#xff0c;Robomongo仍是MongoDB最好的客户端管理工具&#xff0c;如需在Ubuntu上安装Robomongo&#xff0c;可直接从官网下载.tar.gz压缩包进行解压&#xff0c;然后直接运行bin目录下的robomongo文件即可启动界面。例如我将下载下来的.tar.gz压缩包解压到/usr/lo…

pagefile.sys and heberfil.sys

dub 删除heberfil.sys大文件的方法 方法1:Windows/system32中的cmd.exe 输入 powercfg -h off&#xff0c;即可关闭休眠功能&#xff0c;同时 Hiberfil.sys 文件也会自动删除。 方法2:运行命令gpedit.msc打开策略组 依次打开Computer Configuration——Administrative Template…

加密生成指定长度_3分钟短文 | PHP伪随机Token生成器,实地测试,效果感人!

引言我们经常可能会用到邀请码&#xff0c;邮件验证码&#xff0c;或者需要使用unique 字符串标记用户属性的情况。今天我们且不说高深的“全局唯一ID”的生成方案&#xff0c;我们说一个简单的&#xff0c;如何生成一个唯一的&#xff0c;随机的&#xff0c;数组字母组成的字符…

《Java高级程序设计》期末作业【2】-进度安排

计算器项目计划进度安排&#xff1a; 项目成员&#xff1a;潘世林 何青 柴晓光 张峰转载于:https://www.cnblogs.com/panshilin/p/5578496.html