java中多态到底是什么_java中的多态是指什么
java中的多态是指什么
发布时间:2020-06-28 09:59:19
来源:亿速云
阅读:119
作者:Leah
java中的多态是指什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:
多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作:
·如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
·如果当前在 Word 下弹出的就是 Word 帮助;
·在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。
多态的优点
·1. 消除类型之间的耦合关系
·2. 可替换性
·3. 可扩充性
·4. 接口性
·5. 灵活性
·6. 简化性
多态存在的三个必要条件
·继承
·重写
·父类引用指向子类对象
比如:Parent p = new Child();
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
以下是一个多态实例的演示,详细说明请看注释:
Test.java 文件代码:public class Test {
public static void main(String[] args) {
show(new Cat()); // 以 Cat 对象调用 show 方法
show(new Dog()); // 以 Dog 对象调用 show 方法
Animal a = new Cat(); // 向上转型
a.eat(); // 调用的是 Cat 的 eat
Cat c = (Cat)a; // 向下转型
c.work(); // 调用的是 Cat 的 work
}
public static void show(Animal a) {
a.eat();
// 类型判断
if (a instanceof Cat) { // 猫做的事情
Cat c = (Cat)a;
c.work();
} else if (a instanceof Dog) { // 狗做的事情
Dog c = (Dog)a;
c.work();
}
}
}
abstract class Animal {
abstract void eat();
}
class Cat extends Animal {
public void eat() {
System.out.println("吃鱼");
}
public void work() {
System.out.println("抓老鼠");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("吃骨头");
}
public void work() {
System.out.println("看家");
}
}
执行以上程序,输出结果为:吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠
关于java中的多态是指什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
java中多态到底是什么_java中的多态是指什么相关推荐
- java中反射到底是什么_JAVA中反射是什么
烧仙草VB JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息.首先我们先明确两个概念,静态编译和动态编译. ...
- java同一个包是什么意思_java中包到底是什么意思?包访问权限又是什么意思,有C++基础。...
展开全部 是否是说62616964757a686964616fe4b893e5b19e31333335303535 first.java中有A B C 三个类,second.java中有D E F 三 ...
- java方法重载和重载方法_Java中的重载与重载
java方法重载和重载方法 Overriding Vs Overloading In Java 在Java中覆盖vs重载 Overriding and Overloading are the core ...
- java的tey语句return了_Java中try、finally语句中有return时的执行情况
在Java中当try.finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大家众说纷纭,有的说会执行,有的说不会执行,到底哪种说法正确,现在通过下面的例子 ...
- java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思
Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...
- java中的case1怎么说_Java 中的 CAS 简述及原理解析
一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...
- java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别
JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...
- java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
小编典典 Java中的本机方法是什么,应在哪里使用? 一旦看到一个小例子,就很清楚了: Main.java : public class Main { public native int intMet ...
- java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?
这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...
最新文章
- Matlab中plot函数及legend函数详解
- java获取jsp对象的属性_java-从jsp el中的对象获取布尔属性
- pt-online-schema-change 修改主键导致数据删除失败的问题调查
- Linux——好用的一些命令(一)(保持更新)
- 大数据学习笔记25:MR案例——自定义输入输出格式处理个人成绩
- Abp 代码生成器使用说明
- 在发布ASP.NET网站的时候,出现state server错误
- yolov4 火焰检测 火焰识别 代码 数据集 开源
- CactiEZ V10.1 中文版 Cacti中文 安装教程cactiezv10.iso
- 传染病模型-java代码
- Cain嗅探工具的基本使用
- csgo fps不稳定和服务器,CSGO fps不稳定,求FPS 优化设置
- bandzip和360解压_360压缩和bandizip哪个好 360压缩和bandizip软件功能对比详情
- 俞敏洪:人生最重要的两件事是什么?
- 记录——kubeadm集群node节点加入
- 2021年3月12日 星期五 植树节 霾
- 基于python数据分析(分析篇七:预测/误差)
- 微信小程序获取手机验证码
- python爬虫===表情包爬取
- Android平台GB28181设备接入端如何支持跨网段语音对讲
热门文章
- html空开距离,家用空开一半多大
- 财资界风向标:2018 国际财资管理实践奖TMI中国站圆满落幕
- 域服务器适合什么系统,什么是域?什么是域服务器?
- matlab微积分计算
- 2021Java春招,java开发报表工具
- 32位算术逻辑运算单元alu设计_64位的电脑比32位的电脑跑的快么?多图预警
- Clone succeeded, but checkout failed. drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
- vs2017+libsodium
- hosts文件位置?hosts文件是什么?hosts文件修复方法的详细介绍
- 第5天!争气!蒸汽!