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

面试题 相关文章推荐
什么是serialVersionUID
Mar 04 面试题
实现向右循环移位
Jul 31 面试题
抽象类和接口的区别
Sep 19 面试题
C#基础面试题
Oct 17 面试题
Linux如何为某个操作添加别名
Feb 05 面试题
Shell如何接收变量输入
Sep 24 面试题
什么是设计模式
Jun 17 面试题
面向对象设计的原则是什么
Feb 13 面试题
EJB3.1都有哪些改进
Nov 17 面试题
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
Mar 12 面试题
Java如何读取CLOB字段
Oct 10 面试题
高级Java程序员面试题
Jun 23 面试题
什么是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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php max_execution_time执行时间问题
2011/07/17 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
简历中求职的个人自我评价
2013/12/03 职场文书
草船借箭教学反思
2014/02/03 职场文书
保险内勤岗位职责
2014/04/05 职场文书
专家推荐信模板
2014/05/09 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
幼儿园个人总结
2015/02/28 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
小学四年级作文之写景
2019/08/23 职场文书