Java多态性的定义以及类型


Posted in 面试题 onSeptember 16, 2014
多态性:顾名思义就是拥有“多种形态”的含义,是指属性或方法在子类中表现为多种形态。它包括两种类型:
静态多态性:包括变量的隐藏、方法的重载(指同一个类中,方法名相同[方便记忆],但是方法的参数类型、个数、次序不同,本质上是多个不同的方法);
动态多态性:是指子类在继承父类(或实现接口)时重写了父类(或接口)的方法,程序中用父类(或接口)引用去指向子类的具体实例,从代码形式上看是父类(或接口)引用去调用父类(接口)的方法,但是在实际运行时,JVM能够根据父类(或接口)引用所指的具体子类,去调用对应子类的方法,从而表现为不同子类对象有多种不同的形态。不过,程序代码在编译时还不能确定调用的哪一个类的方法,只有在运行时才能确定,故又称为运行时的多态性。(Java中的方法默认都是虚拟的,不用加virtual关键字,而C++却不是)
例如:
class Animal {
public void roar(){
System.out.println(“动物:…”);
}
}
class Cat extends Animal {
public void roar(){
System.out.println(“猫:喵,喵,喵,…”);
}
}
class Dog extends Animal {
public void roar(){
System.out.println(“狗:汪,汪,汪,…”);
}
}
public class AnimalTest {
public static void main(String args[]){
Animal am=new Animal();
am.roar();
am=new Dog();
am.roar();
am=new Cat();
am.roar();
}
}

Tags in this post...

面试题 相关文章推荐
编码实现字符串转整型的函数
Jun 02 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
Aug 04 面试题
经典c++面试题三
Jul 08 面试题
最新远光软件笔试题面试题内容
Nov 08 面试题
如何在.net Winform里面显示PDF文档
Sep 11 面试题
linux系统都有哪些运行级别
Apr 15 面试题
Linux的文件类型
Jul 05 面试题
介绍一下Make? 为什么使用make
Dec 08 面试题
法雷奥SQA(electric)面试问题
Jan 23 面试题
垃圾回收的优点和原理
May 16 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
May 01 面试题
一套Delphi的笔试题一
Feb 14 面试题
什么是serialVersionUID
Mar 04 #面试题
super关键字的用法
Apr 10 #面试题
怎样声明子类
Jul 02 #面试题
Java里面如何把一个Array数组转换成Collection, List
Jul 26 #面试题
Java里面有没有全局变量?为什么?
Feb 06 #面试题
static关键字的用法
Oct 07 #面试题
Java TransactionAPI (JTA) 主要包含几部分
Dec 07 #面试题
You might like
PHP 图片上传代码
2011/09/13 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
学习YUI.Ext第五日--做拖放Darg&Drop
2007/03/10 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
js+css实现打字效果
2020/06/24 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python简单实现基数排序算法
2015/05/16 Python
python入门教程 python入门神图一张
2018/03/05 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
交通事故私了协议书
2014/04/16 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
2016春节放假通知范文
2015/08/18 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
goland 设置project gopath的操作
2021/05/06 Golang