黑马程序员技术交流社区
标题:
这算不算多态
[打印本页]
作者:
吴承烨
时间:
2013-6-18 22:57
标题:
这算不算多态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 用面向对象做计算器
{
class Program
{
static void Main(string[] args)
{
//用面向对象做计算器
// 1.输入数字+符号
Console.WriteLine("请您输入数字1");
int numBer1 =Convert.ToInt32( Console.ReadLine());
Console.WriteLine("请您输入字符串");
string char1 = Console.ReadLine();
Console.WriteLine("请您输入数字2");
int numBer2 =Convert.ToInt32( Console.ReadLine());
int output = 0;
Sum sum = new Sum();
Reduce reduce=new Reduce ();
Divide divide=new Divide ();
Ride ride=new Ride ();
// 2.调用
switch (char1)
{
case "+": output = sum.Sum1(numBer1, numBer2); Console.WriteLine("和为{0}",output); break;
case "-": output = reduce.Sum1(numBer1, numBer2); ; Console.WriteLine("减为{0}", output); break;
case "*": output = divide.Sum1(numBer1, numBer2); Console.WriteLine("乘为{0}", output); break;
case "/": output = ride.Sum1(numBer1, numBer2); Console.WriteLine("除为{0}", output); break;
}
Console.ReadKey();
}
}
}
<font color="red">=====================================</font>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 用面向对象做计算器
{
//封装,继承,多态(虚方法+重写)
//+类
class Sum
{
public virtual int Sum1(int number1,int number2)
{
return( number1 + number2);
}
}
//-类
class Reduce:Sum
{
public override int Sum1 (int number1, int number2)
{
return( number1 - number2);
}
}
//除类
class Divide:Sum
{
public override int Sum1(int number1, int number2)
{
return (number1 * number2);
}
}
// 乘类
class Ride:Sum
{
public override int Sum1(int number1, int number2)
{
return (number1 / number2);
}
}
}
复制代码
作者:
彭康
时间:
2013-6-18 23:08
多态只是一种思想,不是一种技术。
你然你一定要这么问我就告诉你 这算多态吧
作者:
吴承烨
时间:
2013-6-18 23:14
怎么总感觉,就是调用了函数,没用多态,用了
虚方法和重写
可没起什么作用
作者:
changweihua
时间:
2013-6-18 23:19
给运算符抽象出父类,定义虚方法,子类重写,然后通过里氏替换,实现计算
作者:
Candy小烨
时间:
2013-6-19 06:38
你这个不叫多态 只是写了方法继承自一个类而已 多态是 子类继承自父类并重写父类中的方法
在用的时候 声明父类变量 根据不同的情况下 赋值不同的子类类型
因为多态 在调用父类方法时 会根据子类有没有重写父类方法而决定是否调用子类的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2