C#.NET中的接口1
/*
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-16
* Time: 14:06
*
* 接口1
*/
using System ;
interface IAdd
{
string strThing//接口里面的属性和方法默认都是public的(如果不是public的不可能被其他类调用,失去其作用),故不用写关键字
{ //写了任何关键字,都会提示错误。并且不能包含字段成员,不能使用关键字static、virtual、abstract或sealed
get;
set;
}
int Add(int x,int y);//方法和属性里面都不含任何代码,代码写在实现接口的类中(继承接口的类)
}
interface IMinus
{
string strName
{
get;
}
int Minus(int x,int y);
}
class interfaceA:IAdd,IMinus//接口的具体实现代码
{
private string str1;
public string strThing
{
get{return str1;}
set
{
str1=value;
}
}
private string str2;
public string strName
{
get{return str2;}
set
{
str2=value;
}
}
public int Add(int x,int y)
{
return x+y;
}
public virtual int Minus(int x,int y)//可以用virtual或abstract来执行接口成员,但不能使用static或const
{
return x-y;
}
}
class interfaceB:interfaceA
{
public override int Minus(int x, int y)//重写方法
{
return 10*x-y;
}
}
class Test
{
static void Main()
{
IAdd pAdd=new interfaceA ();
int intAdd=pAdd.Add (4,5);//接口其实就是对类中的功能进行分类,这里的pAdd不能调用接口IMinus中的Minus方法
Console.WriteLine (intAdd);//9(4+5)
IMinus pMinus1=new interfaceA ();
int intMinus1=pMinus1.Minus (4,5);//调用A中的实现接口的虚方法
Console.WriteLine (intMinus1);//-1(4-5)
IMinus pMinus2=new interfaceB ();
int intMinus2=pMinus2.Minus (4,5);//调用B中的重写方法
Console.WriteLine (intMinus2);//(10*4-5)
}
}
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-16
* Time: 14:06
*
* 接口1
*/
using System ;
interface IAdd
{
string strThing//接口里面的属性和方法默认都是public的(如果不是public的不可能被其他类调用,失去其作用),故不用写关键字
{ //写了任何关键字,都会提示错误。并且不能包含字段成员,不能使用关键字static、virtual、abstract或sealed
get;
set;
}
int Add(int x,int y);//方法和属性里面都不含任何代码,代码写在实现接口的类中(继承接口的类)
}
interface IMinus
{
string strName
{
get;
}
int Minus(int x,int y);
}
class interfaceA:IAdd,IMinus//接口的具体实现代码
{
private string str1;
public string strThing
{
get{return str1;}
set
{
str1=value;
}
}
private string str2;
public string strName
{
get{return str2;}
set
{
str2=value;
}
}
public int Add(int x,int y)
{
return x+y;
}
public virtual int Minus(int x,int y)//可以用virtual或abstract来执行接口成员,但不能使用static或const
{
return x-y;
}
}
class interfaceB:interfaceA
{
public override int Minus(int x, int y)//重写方法
{
return 10*x-y;
}
}
class Test
{
static void Main()
{
IAdd pAdd=new interfaceA ();
int intAdd=pAdd.Add (4,5);//接口其实就是对类中的功能进行分类,这里的pAdd不能调用接口IMinus中的Minus方法
Console.WriteLine (intAdd);//9(4+5)
IMinus pMinus1=new interfaceA ();
int intMinus1=pMinus1.Minus (4,5);//调用A中的实现接口的虚方法
Console.WriteLine (intMinus1);//-1(4-5)
IMinus pMinus2=new interfaceB ();
int intMinus2=pMinus2.Minus (4,5);//调用B中的重写方法
Console.WriteLine (intMinus2);//(10*4-5)
}
}