JAVA多态概述

一、什么是多态

多态性是面向对象程序设计代码重用的重要机制之一,JAVA中通常将多态分为两大类(特定的(强制的、重载的)、通用的(包含的、参数的))。

1、强制的:一种隐式做类型转换的方法。

2、重载的:将一个标识符用作多个意义。

3、参数的:为不同类型的参数提供相同的操作。

· 4、包含的:类包含关系的抽象操作。

二、概念解释

1、强制的多态

强制的多态隐式地将参数按某种方式,转换成编译器认可的类型来避免错误。例如:

1.0+2.0
1.0+2
1.0+"2"
第一个表达式将两个double类型的操作数相加

第二个表达式将double类型数据和int类型数据相加,在JAVA中没有明确定义这种运算。这时编译器会自动将int转为double并做double型加法,避免抛出错误。

第三个表达式将double与String类型数据相加,在JAVA内部并未定义这样的操作,所以编译器自动将double转String类型,并做串联处理。

隐式的强制可以避免类型转换带来的麻烦,减少编译错误。

2、重载的多态

重载允许相同的方法或运算符拥有不同的意义,程序对运算符的重载依赖于编译器根据上下文做出的选择,虽然JAVA明确支撑重载,但是并不支持用户定义的操作符重载。JAVA支撑用户定义的函数重载。在一个类中可以有相同的名字和方法,这些方法可以有不同的意义。在这些重载的方法中必须满足参数数目不同、相同位置上的参数类型不同的条件。

3、参数的多态

参数多态允许把许多类型抽象成单一的表示。例如,在一个名为A的抽象类中,描述了一组具有同样特征的对象,提供了一个通用模板。我们可以通过指定一种类型以重用这个抽象类。这些参数可以是任何用户定义的类型,很多用户都可以使用这个抽象类,因此参数多态毫无疑问成了最强大的多态。Java的单根继承方式解决了部分问题,但没有发挥出参数多态的全部功能。

4、包含的多态

包含多态通过值的类型和集和的包含关系实现了多态的行为,在包括Java在内的众多面向对象语言中,包含关系是子类型的。所以Java的包含多态是子类型的多态。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值