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...

面试题 相关文章推荐
PHP数据运算类型都有哪些
Nov 05 面试题
JSF面试题:Jsf中导航的标签是什么
Apr 20 面试题
华为慧通面试题
Sep 11 面试题
.NET现在共支持多少种语言
Feb 26 面试题
Shell编程面试题
May 30 面试题
介绍一下grep命令的使用
Jun 12 面试题
介绍一下Linux内核的排队自旋锁
Aug 27 面试题
介绍一下Linux文件的记录形式
Sep 29 面试题
nohup的用法
Aug 10 面试题
How to spawning asynchronous work in J2EE
Aug 29 面试题
Prototype中如何为一个元素添加一个方法
Dec 08 面试题
Java程序员综合测试题
Apr 25 面试题
什么是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笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
Bootstrap基础学习
2015/06/16 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
Python实现疫情地图可视化
2021/02/05 Python
企划主管岗位职责
2013/12/12 职场文书
财务部绩效考核方案
2014/05/04 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
教师个人事迹材料
2014/12/17 职场文书
2015毕业寄语大全
2015/02/26 职场文书
合同审查法律意见书
2015/06/04 职场文书