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

面试题 相关文章推荐
什么是类的返射机制
Feb 06 面试题
什么是WEB控件?使用WEB控件有哪些优势?
Jan 21 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
网络安全类面试题
Aug 01 面试题
C#如何判断当前用户是否输入某个域
Dec 07 面试题
C#可否对内存进行直接的操作
Feb 26 面试题
中科方德软件测试面试题
Apr 21 面试题
亿企通软件测试面试题
Apr 10 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
Mar 05 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
Nov 04 面试题
SOA面试题:如何在SOA中实现松耦合
Jul 21 面试题
什么是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
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
PHP创建XML接口示例
2019/07/04 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
运动会入场词50字
2014/02/20 职场文书
热情服务标语
2014/10/07 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
python微信智能AI机器人实现多种支付方式
2022/04/12 Python