例项: public abstract class Operation{ public abstract decimal GetResult(decimal va, decimal vb);}public class OperationAdd : Operation{ public override decimal GetResult(decimal va, decimal vb) { return va + vb; }}public class OperationSub : Operation{ public override decimal GetResult(decimal va, decimal vb) { return va - vb; }}public class OperationMul : Operation{ public override decimal GetResult(decimal va, decimal vb) { return va * vb; }}public class OperationDiv : Operation{ public override decimal GetResult(decimal va, decimal vb) { return va / vb; }}public static class OperationFactory{ public static Operation Create(string operate) { switch (operate) { case "+": return new OperationAdd(); case "-": return new OperationSub(); case "*": return new OperationMul(); case "/": return new OperationDiv(); default: throw new ArgumentException("Unknown operator"); } }} static void Main(string[] args){ var operation = OperationFactory.Create("-"); var result = operation.GetResult(34, 9); Console.WriteLine(result.ToString());}
using System; public class DrawingObject { public virtual void Draw() { Console.WriteLine("I'm just a generic drawing object."); } } DrawingObject类,这是个可以让其他物件继承的基类。该类有一个名为Draw()的方法。Draw()方法带有一个virtual修饰符,该修饰符表明:该基类的派生类可以过载该方法。DrawingObject类的 Draw()方法完成如下事情:输出语句"I'm just a generic drawing object."到控制台。 using System; public class Line : DrawingObject { public override void Draw() { Console.WriteLine("I'm a Line."); } } public class Circle : DrawingObject { public override void Draw() { Console.WriteLine("I'm a Circle."); } } public class Square : DrawingObject { public override void Draw() { Console.WriteLine("I'm a Square."); } } 定义了三个类。这三个类都派生自DrawingObject类。每个类都有一个同名Draw()方法,这些Draw()方法中的每一个都有一个过载修饰符。过载修饰符可让该方法在执行时过载其基类的虚方法,实现这个功能的条件是:通过基类型别的指标变数来引用该类。 实现多型性的程式:DrawDemo.cs using System; public class DrawDemo { public static int Main(string[] args) { DrawingObject[] dObj = new DrawingObject[4]; dObj[0] = new Line(); dObj[1] = new Circle(); dObj[2] = new Square(); dObj[3] = new DrawingObject(); foreach (DrawingObject drawObj in dObj) { drawObj.Draw(); } return 0; } } 输出结果是: I'm a Line. I'm a Circle. I'm a Square. I'm just a generic drawing object. 在DrawDemo 程式中,呼叫了每个派生类的过载的Draw()方法。 最后一行中,执行的是DrawingObject类的虚方法Draw()。这是因为执行到最后,阵列的第四个元素是DrawingObject类的物件。 能java用case和switch举个简单的例子吗? public static void main(String[] args) { int i = 1; switch (i) { case 1:如果switch (i)中的i=1 的时候执行以下程式 System.out.println(1); break;执行到break 如果不写会顺序向下执行System.out.println(2); case 2:如果switch (i)中的i=2 的时候执行以下程式 System.out.println(2); break; default:其他 即switch (i) 中的i 不等于case 1 case 2 中的 1 2那么就执行下面的程式 System.out.println("other"); break; } } 举一个简单的例子解释股票是怎么赚钱与赔钱的! 当大部分投资者都因为看好而买入,股价就拉升,持有者就赚钱,亏钱反过来理解 有哪些和微粒贷,借呗,360借条一样手续简单的贷款? 还有网易小贷,360安心借条,希财贷款超市一样手续简单的贷款。