首页 > 其他 > 详细

面向对象——多态

时间:2021-03-16 22:09:37      阅读:23      评论:0      收藏:0      [点我收藏+]

 多态的定义

Java中多态性指允许不同类的对象对同一消息做出响应

即同一方法可以根据使用对象的不同而采用多种不同的行为方式。

现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在IE界面下弹出的浏览器的帮助文档;如果当前在 Word 下弹出的就是 office帮助;在 Windows 下弹出的就是 Windows 帮助和支持

多态的主要作用适用于消除类型之间的耦合关系,提高程序的可扩展性。

简单说多态是具有表现多种形态的能力的特征

 多态的实现

 

前提:要有层级关系。(在继承的关系下,或者是在接口的实现关系下)

 多态体现

父类对象有多种形态的能力,父类对象可以是任意一个子类的实例

多态也称为子类对象向上转型,或者说父类引用指向任意子类对象。或者认为编译时数据类型与运行时数据类型不一致

引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法(编译时调用父类方法,运行时调用子类方法)因此,编写Java代码时,引用只能调用编译器类型里包含的成员(父类成员)

向下转型

多态的弊端,只能访问父类成员,子类独有的成员无法访问

向下转型: 将父类实例转化成子类对象(强制转换)

简单案例解释:人类是父类,男人女人是子类,一个人是男人,一定也是人,所以向上转型不需要强制,但是一个人是人,但不一定是男人,所以需要强制转换

 

抽象方法

在某些情况下,基类无法(或者没有必要)提供被覆盖方法的具体实现,那么就可以将此方法声明成抽象方法

抽象类

如果某个类中包含有抽象方法,那么该类就必须定义成抽象类

定义抽象类同样使用关键字abstract,一般语法:

技术分享图片

简单的理解,Java的抽象就是只声明行为接口(方法签名)而不完成具体的实现。

 

特征

 

利用抽象的概念,能够在开发项目中创建扩展性很好的架构,优化程序

 

抽象类,抽象方法,在软件开发过程中都是设计层面的概念。也就是说,设计人员会设计出抽象类,抽象方法,程序员都是来继承这些抽象类并覆盖抽象方法,实现具体功能

 

抽象类是抽象方法的容器,如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。抽象类中也可以包含有非抽象的方法甚至抽象类中可以没有抽象方法

 

抽象类不可以直接实例化,只可以用来继承作为其他类的父类存在

抽象类的派生子类应该提供对其所有抽象方法的具体实现

如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化,但可以有构造函数(用于帮助子类快速初始化共有属性)

面向对象——多态

原文:https://www.cnblogs.com/Leo-Heng/p/14540121.html

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