多态的弊端

/*
多态的弊端
 对象减的转型问题
  向上转型
   fu f=new zi();
  向下转型
   zi z=(zi)f;
*/
class pen{
 public void Fe(){
  System.out.println("Fe pen");
 }
}
class gangpen extends pen{
 public void Fe(){
  System.out.println("Fe gangpen");
 }
 public void fe(){
  System.out.println("fe gangpen");
 }
}
class BieDemo{
 public static void main(String[] args){
  pen p=new gangpen();//向上转型
  p.Fe();//Fe gangpen
  //p.fe();有问题。!!!
  gangpen g=(gangpen)p;//向下转型
  g.Fe();//Fe gangpen
  g.fe();//fe gangpen
 }
}
多态是面向对象编程的一个重要概念,它允许使用父类类型的变量来引用子类类型的对象。多态具有以下优势和弊端: 优势: 1. 可扩展性:多态使得程序更加灵活和可扩展。通过定义通用的父类类型,可以在不修改现有代码的情况下添加新的子类类型。 2. 可替换性:多态使得代码更具有可替换性,可以在运行时动态地替换对象的实际类型。这意味着可以通过改变对象的具体实现类来改变程序的行为。 3. 代码复用:多态可以提高代码的复用性。通过将代码与具体的实现类解耦,可以更好地实现模块化和重用。 弊端: 1. 性能损失:多态需要在运行时进行类型检查和动态绑定,可能会导致一定的性能损失。相比于直接调用具体类型的方法,多态的方法调用可能需要更多的时间。 2. 可读性下降:多态的使用可能会导致代码的可读性下降。由于多态的对象类型在编译时无法确定,需要进行一些额外的推理和理解。 3. 隐藏细节:多态可能会隐藏子类的细节,使得代码更加抽象和难以理解。这可能会导致一些潜在的问题被掩盖,增加调试和维护的难度。 总的来说,多态在面向对象编程具有重要的优势,但也需要在适当的时候进行权衡和使用。合理地利用多态可以提高代码的灵活性和可维护性,但过度使用可能会带来一些性能和可读性的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值