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面试题大全
Oct 16 面试题
Java中实现多态的机制是什么?
Dec 07 面试题
Weblogic的布署方式
Aug 23 面试题
在Java开发中如何选择使用哪种集合类
Aug 09 面试题
C/C++程序员常见面试题一
Dec 08 面试题
盛大笔试题
Nov 05 面试题
linux下进程间通信的方式
Dec 23 面试题
长青弘远的面试题
Jun 09 面试题
Python面试题:如何用Python来发送邮件
Mar 15 面试题
几道Java和数据库的面试题
May 30 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
怎样声明一个匿名的内部类
Jun 01 面试题
什么是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
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
ptyhon实现sitemap生成示例
2014/03/30 Python
win与linux系统中python requests 安装
2016/12/04 Python
python3.4实现邮件发送功能
2018/05/28 Python
python实现录音小程序
2020/10/26 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python可以用来做什么
2020/11/23 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
采购内勤岗位职责
2013/12/10 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android