博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java--多态
阅读量:4619 次
发布时间:2019-06-09

本文共 897 字,大约阅读时间需要 2 分钟。

一、多态概述

   多态是继封装、继承之后,面向对象的第三大特性。

 

现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。

 

Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。

    格式:就是父类引用指向子类对象

        父类类型 变量名=new 子类类型();

二、多态成员特点

    A:多态成员变量

      当子父类中出现同名的成员变量时,多态调用该变量时:

      编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。

      运行时期:也是调用引用型变量所属的类中的成员变量。

      简单记:编译和运行都参考等号的左边。编译运行看左边。

     B:多态成员方法

      编译时期:参考引用变量所属的类,如果没有类中没有调用的方法,编译失败。

      运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。

      简而言之:编译看左边,运行看右边

三、多态向上转型与向下转型

     多态的转型分为向上转型与向下转型两种:

 

     A:向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。

 

     使用格式:当Student类继承Person类时

          Person p=new Student();

     B:向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的

     使用格式:Student stu=(Student)p;

四、优缺点

  多态的优缺点

      优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性

   缺点:无法直接访问子类特有的成员

 

 

转载于:https://www.cnblogs.com/xlbgogo/p/7198590.html

你可能感兴趣的文章
java中HashMap类用法
查看>>
完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
查看>>
分布式监控系统Zabbix-完整安装记录 -添加端口监控
查看>>
Python之反向迭代
查看>>
STM32F4 输入输出(GPIO)模式理解
查看>>
转义符
查看>>
poj 1019
查看>>
asp.net mvc上传文件
查看>>
bitmq集群高可用测试
查看>>
subline text3利用正则搜索
查看>>
项目管理思考——职责
查看>>
主成分分析(PCA)原理详解
查看>>
短信验证接口网址
查看>>
Geohash距离估算
查看>>
Demon_背包系统(实现装备栏,背包栏,可以切换装备)
查看>>
记录:一次数据库被恶意修改配置文件的问题
查看>>
redis 持久化
查看>>
http协议详解
查看>>
解决Jupyter notebook[import tensorflow as tf]报错
查看>>
Windows平台下使用ffmpeg和segmenter实现m3u8直播点播
查看>>