设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[面试题库] Java多态性的定义以及类型

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-30 10:29:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
多态性:顾名思义就是拥有“多种形态”的含义,是指属性或方法在子类中表现为多种形态。它包括两种类型:
静态多态性:包括变量的隐藏、方法的重载(指同一个类中,方法名相同[方便记忆],但是方法的参数类型、个数、次序不同,本质上是多个不同的方法);
动态多态性:是指子类在继承父类(或实现接口)时重写了父类(或接口)的方法,程序中用父类(或接口)引用去指向子类的具体实例,从代码形式上看是父类(或接口)引用去调用父类(接口)的方法,但是在实际运行时,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();
}
}
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-4 22:02 , Processed in 0.174469 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表