java多态如何实现解耦_多态及实现方式

多态性是面向对象编程的重要特性,允许同一操作作用于不同对象产生不同效果。它通过抽象基类、虚方法、抽象类和接口实现,提高了代码的复用性、可扩展性和可维护性。多态能够降低系统耦合度,使得模块间通过接口交互,增强了程序的灵活性。通过虚方法、抽象类和接口,子类可以重写或实现父类的功能,实现向后兼容。
摘要由CSDN通过智能技术生成

1.   什么是多态

多态按字面意思就是“多种形态“。在面向对象语言中,接口的多种不同实现方式即为多态。用一句比较通俗的话说;同一操作作用于不同的对象,可以产生不同的效果。

多态在生活中就像是同一个词语,用在不同的语境中,可以表达不同的意思。

例子:比如有动物(Animal)之类(Class),而且由动物继承出类别(Chicken)和类别够(Dog),并对同一源自类别动物(父类别)之一消息有不同的响应,如类别动物有“()”的动作,而类别鸡会“啼叫()”,类别狗会“吠叫()”,则称之为多态。如图:

4b747a3003e8c73aeac8a7941c3cefd9.png

2.  为什么需要多态

多态可以把不同的子类对象当作父类来看,可以屏蔽不同子类之间的差异,写出通用的代码,做出通用的编程,以适用需求的不断变化。

在提到多态时不得不提的是封装和继承,封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面,他把实现的细节全部隐藏起来了,例如:在java中取实现一个类,这个类中提供了一些功能方法,你只需知道你需要传递什么参数,会达到什么效果,来使代码模块化。继承可以扩展已经存在的代码模块,而目的就是为了使代码重用。

多态除了代码的复用,还可以解耦,耦合度就是模块与模块之间,代码与代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的目的,模块与模块之间尽量使用模块接口访问,而不是随意引用其他模块的变量成员。

多态的优点:

1.应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承

2.派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用

3. 多态的实现方式

3.1  虚方法

关于虚方法需要注意的几点:

1.父类中如果有方法需要让子类重写,则可以将该方法标记为virtual

2.虚方法在父类中必须有实现,哪怕是空实现。

3.虚方法子类可以重写(override),也可以不重写

3.2   抽象类

关于抽象方法注意的几点:

1.需要用abstract关键字标记

2.抽象方法不能有任何方法实现。

3.抽象成员必须包含在抽象类中。

4.由于抽象成员没有任何实现,所以子类必须将抽象成员重写。

5.抽象类不能实例化,

抽象类的作用:抽象类的作用就是为了让子类继承。

6.抽象类中可以包括抽象成员,可以包括有具体代码的成员。

7. 还有抽象方法不能用static修饰

3.3    接口

关于接口要注意以下几点:

1.接口中只能包含方法(属性、事件、索引器也都是方法)

2.接口中的成员都不能有任何实现。光说不做

3.接口不能被实例化。

4.接口中的成员不能有任何访问修饰符。(默认为public)

5.实现接口的子类必须将接口中的所有成员全都实现。

6.子类实现接口的方法时,不需要任何关键字,直接实现即可。

7.接口存在的意义就是为了多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值