A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 吴承烨 中级黑马   /  2013-6-18 22:57  /  1353 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 用面向对象做计算器
  6. {
  7.    class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.            //用面向对象做计算器
  12.            // 1.输入数字+符号
  13.             Console.WriteLine("请您输入数字1");
  14.             int numBer1 =Convert.ToInt32( Console.ReadLine());
  15.             Console.WriteLine("请您输入字符串");
  16.             string char1 = Console.ReadLine();
  17.             Console.WriteLine("请您输入数字2");
  18.             int numBer2 =Convert.ToInt32( Console.ReadLine());
  19.             int output = 0;
  20.             Sum sum = new Sum();
  21.             Reduce reduce=new Reduce ();
  22.             Divide divide=new Divide ();
  23.             Ride ride=new Ride ();
  24.             // 2.调用
  25.             switch (char1)
  26.             {
  27.                 case "+": output = sum.Sum1(numBer1, numBer2); Console.WriteLine("和为{0}",output); break;
  28.                 case "-": output = reduce.Sum1(numBer1, numBer2); ; Console.WriteLine("减为{0}", output); break;
  29.                 case "*": output = divide.Sum1(numBer1, numBer2); Console.WriteLine("乘为{0}", output); break;
  30.                 case "/": output = ride.Sum1(numBer1, numBer2); Console.WriteLine("除为{0}", output); break;
  31.             }
  32.             Console.ReadKey();
  33.         }
  34.     }
  35. }
  36. <font color="red">=====================================</font>
  37. using System;
  38. using System.Collections.Generic;
  39. using System.Linq;
  40. using System.Text;

  41. namespace 用面向对象做计算器
  42. {
  43.     //封装,继承,多态(虚方法+重写)
  44.     //+类
  45.     class Sum
  46.     {
  47.         public virtual int Sum1(int number1,int number2)
  48.         {
  49.            return( number1 + number2);
  50.         }
  51.     }
  52.     //-类
  53.     class Reduce:Sum
  54.     {
  55.         public override int Sum1 (int number1, int number2)
  56.         {
  57.            return( number1 - number2);
  58.         }
  59.     }
  60.     //除类
  61.     class Divide:Sum
  62.     {
  63.         public override int Sum1(int number1, int number2)
  64.         {
  65.             return (number1 * number2);
  66.         }
  67.         
  68.     }
  69.     // 乘类
  70.     class Ride:Sum
  71.     {
  72.         public override int Sum1(int number1, int number2)
  73.         {
  74.             return (number1 / number2);
  75.         }
  76.     }
  77. }
复制代码

4 个回复

倒序浏览
多态只是一种思想,不是一种技术。

你然你一定要这么问我就告诉你 这算多态吧
回复 使用道具 举报
怎么总感觉,就是调用了函数,没用多态,用了虚方法和重写可没起什么作用
回复 使用道具 举报
给运算符抽象出父类,定义虚方法,子类重写,然后通过里氏替换,实现计算
回复 使用道具 举报
你这个不叫多态 只是写了方法继承自一个类而已  多态是  子类继承自父类并重写父类中的方法
在用的时候 声明父类变量 根据不同的情况下 赋值不同的子类类型
因为多态 在调用父类方法时 会根据子类有没有重写父类方法而决定是否调用子类的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马