java多态替换switch,多态如何替换循环内的if-else语句?

How can polymorphism replace an if-else statement or Switch inside of a loop? In particular can it always replace an if-else? Most of the if-thens I use inside of loops are arithmetic comparisons. This question is spawned from this question.

int x;

int y;

int z;

while (x > y)

{

if (x < z)

{

x = z;

}

}

How would this work with polymorphism?

NOTE: I wrote this in Java but am interested in this for any OOL.

解决方案

Polymorphism usually replaces switch statements when each case corresponds to a different type. So instead of having:

public class Operator

{

string operation;

public int Execute(int x, int y)

{

switch(operation)

{

case "Add":

return x + y;

case "Subtract":

return x - y;

case "Multiply":

return x * y;

case "Divide":

return x / y;

default:

throw new InvalidOperationException("Unsupported operation");

}

}

}

you'd have:

public abstract class Operator

{

public abstract int Execute(int x, int y);

}

public class Add : Operator

{

public override int Execute(int x, int y)

{

return x + y;

}

}

// etc

However, for the comparison type of decision you provided, polymorphism really doesn't help.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值