多态如何在循环中替换if-else语句或Switch?特别是它总能取代if-else?我在循环中使用的大多数if-thens都是算术比较.这个问题是从这个问题中产生的.
int x; int y; int z; while (x > y) { if (x < z) { x = z; } }
如何使用多态?
注意:我用Java编写了这个,但我对任何OOL感兴趣.
当每个案例对应不同类型时,多态通常会替换switch语句.所以不要:
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"); } } }
你有:
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
但是,对于您提供的比较类型的决策,多态性确实无济于事.