java多态总结

本文介绍了多态的原理,它能分离接口和实现,消除类型耦合。阐述了多态存在的条件,包括继承、重写和向上转型,以及三种实现方式。还提及动态绑定、耦合和内聚等相关知识点,强调现代程序应高内聚低耦合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态通过分离做什么和怎么做,将接口和实现分离开来,使程序就有良好的可扩展性。

多态的作用是消除类型之间的耦合关系。

多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要他们都是从同一基类导出而来。

静态方法不具有多态。

 

多态存在的条件:

  • 继承
  • 重写
  • 父类引用指向子类对象
Parent p = new Child();

继承:在多态中必须存在有继承关系的子类和父类。

重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

 

当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。

 

多态的三种实现方式:

重写、接口、抽象类和抽象方法。

指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。

 

 

其他相关知识点:

动态绑定:是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

耦合和内聚:

耦合性是编程中的一个判断代码模块构成质量的属性,不影响已有功能,但影响未来拓展,与之对应的是内聚性。

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

因此,现代程序讲究高内聚低耦合,即将功能内聚在同一模块,模块与模块间尽可能独立,互相依赖低。没有绝对没有耦合的模块组,只有尽量降低互相之间的影响。使模块越独立越好。

 

如果将项目视作是一种有机的、进化的生命体而去培养,而不是打算像盖摩天大楼一样快速见效,就会获得更多的成功和更迅速的回馈。——《java编程思想》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值