首页 > 编程语言 > 详细

【Java】多态

时间:2020-06-16 18:15:55      阅读:38      评论:0      收藏:0      [点我收藏+]

多态

  一个对象多种形态,就称它为多态(父类型的引用指向子类型的对象)

  一个表示自己的类,一个表示自己的父类

技术分享图片

 

多态特点:

  父类型的引用指向子类型的对象,表现的是子类的特征(把子类型的对象赋值给父类的对象)

  ps:编译看左边,运行看右边(多态编译时先看父类,运行时是表现new出来的子类的特征)

技术分享图片

 

 

而我们又为什么要是有多态呢?

首先讲下封装和继承:

  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面,他把实现的细节影藏起来了,比如你在java中去实现一个类,这个类中提供了一些功能方法,你只需要知道你需要传递什么样的参数,会达到什么样的效果,实现细节在类中定义好了(类似于一个保护罩,防止一个类被其他类随意访问,控制访问,隐藏信息跟实现细节,提高安全性,从而使得代码模块化)

  而继承可以扩展已存在的代码模块,而目的就是为了代码重用。

 而使用多态呢?

  消除类型之间的耦合关系,可以分为一个一个的子模块,提高了代码的扩展性。是OOP原则的一个具体的实现

--------------------------------------------------------------------------------------------------------------------

instanceof关键字

  在使用多态的时候,如果子类有父类没有的方法,先用instanceof关键字判断一下是否是指定的类,再用类强制类型转换(例:Dog dog = (Dog)anim),转换为父类

技术分享图片

 

多态注意点(字段是不属于多态的)

  例 Animal  dog = new Dog();dog.name是使用Animal父类的,意思就是说,字段没有多态,只能调用字段前面对象类型的数据,编译时已经决定好了

技术分享图片实例

  先创建一个多态,使用时,如果子类有父类没有的方法,先将父类强制转换为子类,才能使用子类的方法

技术分享图片

 

【Java】多态

原文:https://www.cnblogs.com/Cccc4/p/13143607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!