谈谈我对多态的理解

什么是多态

多态是面向对象的特性之一,从字面上理解,多态就是指一个对象在运行是会有多种形态,就比如可以说student是一个person,也可以说student是一个object。

我们来看一个经典的例子:

Service service=new ServiceImpl();

我们经常看到这样的代码,这就是多态的一种表现。

为什么要多态

多态可以让代码更加灵活,再举一个例子:

List<String> list=new ArrayList<>();

这也是我们常写的一句代码,为什么不把List换成ArrayList?

一个很大的原因就是要考虑到以后的情况,假设以后ArrayList已无法满足我们软件的需求,这时候可能需要一个和ArrayList相似的类来替代它,那么如果我们直接面向具体的类进行编程,以后的可维护性肯定会变差,所以多态能使我们面向抽象进行编程,使代码更加地灵活。

多态的缺点

那么多态肯定会有它的缺点,那就是我们无法调用我们具体类的方法。什么意思?举个例子:

假设我们的Person类有一个speak方法,Student类是从Person类继承过来的,它有一个额外的方法study。

那么我们直接这样:

Person student=new Student();

很明显,这样我们就失去了study这个方法。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象多态是指在面向对象编程中,同一个方法名可以在不同的对象上具有不同的实现方式。这意味着通过多态,可以使用统一的接口来处理不同类型的对象,而无需关心具体对象的类型。 多态性的实现依赖于继承和方法重写。当子类继承父类并重写父类的方法时,可以根据子类对象的实际类型来调用相应的方法实现。这样,通过一个通用的父类引用,可以在运行时确定具体调用哪个子类的方法。 多态性的好处在于增加了代码的灵活性和可扩展性。它允许我们编写通用的代码,能够处理不同类型的对象,而无需为每种特定类型编写专门的代码。这样可以减少代码的重复性,提高代码的复用性和可维护性。 另外,多态性还能提高代码的可扩展性。当需要添加新的子类时,只需保证新子类继承自相应的父类,并重写父类的方法即可,而不需要修改原有代码。这种扩展方式符合开闭原则,即对扩展开放,对修改关闭。 多态性还能提高代码的可读性和可理解性。通过使用统一的接口和方法名,可以使代码更易于理解和维护,减少了理解和学习新代码所需的认知负担。 总之,面向对象多态是一种重要的特性,它通过使用统一的接口和方法名,使得代码更具灵活性、可扩展性、可读性和可维护性。它是面向对象编程中的一个关键概念,能够提高代码的质量和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值