求教大神定义这个接口有什么有,把接口注释掉运行起来一样的

interface information //定义接口
{
string Code { get; set; }
string Name { get; set; }
void ShowInfo(); //输出信息
}
public class Sale : information //接口的继承
{
string code = "";
string name = "";
public string Code
{
get
{
return code;
}
set
{
code = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public Sale(string code, string name) //定义构造函数
{
Code = code;
Name = name;
}
public void ShowInfo() { } //实现接口方法
public static void ShowInfo(Sale[] sales)
{
foreach (Sale s in sales)
Console.WriteLine("商品编号:" + s.Code + "商品名称:" + s.Name); //用得是属性,不是具体变量
}
public static double CaleMoney(T[] items) //定义泛型方法,定义成静态,不需生成实例
{
double sum = 0;
foreach (T item in items)
sum += Convert.ToDouble(item);
return sum; //使用泛方法,不管传入什么类型,转化为double
}
}

c#

1个回答

接口的理解
1. 面向接口编程利用面向对象的一个基本性质--多态,相同方法不同表现。可以这样想一下,client编写自己程序的时候,如果直接面向一个具体类写程序,那这个程序有个风吹草动的,那client就要受到影响,但如果面向一个接口就不同了,某个具体类变了,只知接口,不知具体类的client就可以完全不动。

  1. 换个视角看,面向接口编程反映面向对象的另一个方面--封装,接口将具体实现封装了起来,相当于做一件事的准则,可以不影响客户的情况下切换实现。接口必须有实现它的类(class),单独不能使用。 所以如果Sale类不继承information接口也是可以正常使用的。information接口为用户开放了ShowInfo()方法,用户只需要有这个方法就可以,不需要知道类Sale是如何实现,所以information接口就是制定行为准则,即提供了一个调用的标准。类information的实际也必须按照这个标准来实现,否则也会出错。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问