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

面试题 相关文章推荐
JPA面试常见问题
Nov 14 面试题
如何提高JDBC的性能
Apr 30 面试题
将n个数按输入顺序的逆序排列,用函数实现
Nov 14 面试题
创建索引时需要注意的事项
May 13 面试题
上海某公司.net方向笔试题
Sep 14 面试题
什么是.net的Remoting技术
Jul 08 面试题
linux面试题参考答案(11)
Nov 26 面试题
what is the difference between ext2 and ext3
Aug 25 面试题
一套软件开发工程师笔试题
May 18 面试题
汇科协同Java笔试题
Mar 31 面试题
Servlet面试题库
Jul 18 面试题
一套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中addslashes函数与sql防注入
2014/11/17 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
Python 第一步 hello world
2009/09/25 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
python批量处理文件或文件夹
2020/07/28 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
人民教师求职自荐信
2014/03/12 职场文书
服装店员工管理制度
2015/08/07 职场文书
小学班主任研修日志
2015/11/13 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js