public class Temperature : IComparable { /// <summary> /// IComparable.CompareTo implementation. /// </summary> public int CompareTo(object obj) { if(obj is Temperature) { Temperature temp = (Temperature) obj; return m_value.CompareTo(temp.m_value); }
throw new ArgumentException("object is not a Temperature"); } // The value holder protected int m_value; public int Value { get { return m_value; } set { m_value = value; } } public int Celsius { get { return (m_value-32)/2; } set { m_value = value*2+32; } } }
/// <summary>
/// IComparable.CompareTo implementation.
/// </summary>
public int CompareTo(object obj) {
if(obj is Temperature) {
Temperature temp = (Temperature) obj; return m_value.CompareTo(temp.m_value);
}
throw new ArgumentException("object is not a Temperature");
} // The value holder
protected int m_value; public int Value {
get {
return m_value;
}
set {
m_value = value;
}
} public int Celsius {
get {
return (m_value-32)/2;
}
set {
m_value = value*2+32;
}
}
}
比如:我们日常生活的USB接口,为什么我们要用USB接口呢?
那么USB接口就提供了一种规范,凡是各种使用USB接口生产的硬件设备都能通过插入主板的USB接口与我们的计算通信!
如:USB鼠标,USB摄像头,USB优盘,USB打印机,USB扫描仪,USB移动硬盘等等.
要是你拿个PS2的鼠标能插入主板的USB接口吗?显然是不可以的.
那么我们的程序也是如此.我们定义接口,让别的类来针对我们定义的接口编程,实现接口里的功能!那么可以有许多类可以实现这个接口.并且各个类实现的功能可能都不一样.如我们的USB移动硬盘只实现USB的读数据和写数据,USB摄像头只实现显示图像.
并且有肋于我们的程序扩展,例如将来我们可能要通过USB接口制造出一种USB迷你音响.那么我们只要把接口做成USB的就可以了,而我们的主板并不需要了解USB音响是怎么工作的..
关于接口的知识很多,在这里也说不完.希望我这点例子能对你带来帮助!比如还有:接口实现了对象与对象的松藕合,让对象之间的依赖降到最底!
interface ISampleInterface
{
void SampleMethod();
}class ImplementationClass : ISampleInterface
{
// Explicit interface member implementation:
void ISampleInterface.SampleMethod()
{
// Method implementation.
} static void Main()
{
// Declare an interface instance.
ISampleInterface obj = new ImplementationClass(); // Call the member.
obj.SampleMethod();
}
}
接口可以是命名空间或类的成员.
一个接口可从一个或多个基接口继承。
当基类型列表包含基类和接口时,基类必须是列表中的第一项。
实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问
另外,我认为,程序中应该用到程序语言哪方面的功能,是应实际需要而定,而不是先确定“想用接口”,再来设计。
单继承的语言(C#、Java)中,接口不可以通过公共类替代