java中的多态
来源:互联网 发布:单片机程序实验流程图 编辑:程序博客网 时间:2024/06/06 04:26
多态是面向对象三大基本特征之一,多态是基于继承的,子类继承父类,因此子类是一种特殊的父类, Java 允许将一个子类对象直接赋值给一个父类引用变量,
无须任何类型转换,这就是向上转型。
无须任何类型转换,这就是向上转型。
既然子类对象可以直接赋值给父类引用变量,因此Java 引用变量类型可分为两种情况:一个是声明的类型,一个是实际的类型,所谓声明的类型是指声明该变量时使用的类型,实际时的类型是由实际赋值给该变量的对象决定。
JAVA中引用变量只能调用其声明类型所具有的方法,但运行时则会执行它实际的类型中的方法。也就是说当一个子类对象直接赋值给一个父类引用变量时,只能调用父类所具有的方法,但实际运行时会运行子类的方法(因为父类的方法被覆盖了),这就是多态。
下面看一个例子
class Bird{ //定义父类鸟类 public void fly(){ //鸟类会飞 System.out.println("I can fly!"); }}class Parrot extends Bird{ //定义鹦鹉类继承鸟类 public void fly(){ //重写fly()方法,有自己特殊的飞的方式 System.out.println("I am a parrot, and I can fly!"); } public void say(){ //鹦鹉还会说话 System.out.println("I am a parrot, and I can say!"); }}public class Test{public static void main(String[] args) {Bird a = new Parrot(); //将Parrot实例赋值给Bird,编译时类型为Bird,运行时类型为Parrota.fly(); //输出I am a parrot, and I can fly!//a.say(); Bird没有say()方法,不能调用}}
阅读全文
0 0
- Java 中的多态
- java中的多态
- java中的多态
- Java中的多态
- Java中的多态
- Java中的多态
- Java 中的多态
- java中的多态
- java中的多态
- Java中的多态
- Java 中的多态
- Java中的多态
- Java中的多态
- java中的多态
- Java中的多态
- java中的多态
- java中的多态
- Java中的多态
- gis项目启动问题
- Lucene查询方式
- 阿里云dubbo提供者Service启动时默认将方法注册到内网IP
- JDBC工具类及用法
- 【bzoj1003】[ZJOI2006]物流运输
- java中的多态
- javabean总结
- python与Java线程实现方式的对比
- jdbc
- 在ABAQUS中使用多孔介质模型
- 守望先锋--MATLAB图像处理辅助Try2
- 数据储存方式
- 文章标题
- Spring Cloud Config Server