dkn*_*ack 58
C#中的接口提供了一种实现运行时多态性的方法.使用接口我们可以通过相同的接口引用调用来自不同类的函数,而使用虚函数我们可以通过相同的引用调用同一继承层次结构中不同类的函数.
public class FileLog : ILog
{
public void Log(string text)
{
// write text to a file
}
}
public class DatabaseLog : ILog
{
public void Log(string text)
{
// write text to the database
}
}
public interface ILog
{
void Log(string text);
}
public class SomeOtherClass
{
private ILog _logger;
public SomeOtherClass(ILog logger)
{
// I don't know if logger is the FileLog or DatabaseLog
// but I don't need to know either as long as its implementing ILog
this._logger = logger;
logger.Log("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
你问过教程.
接口通常用于强制实现类遵守某个合同(意味着具有某些方法).有时它们只是用作标记,即它们没有声明方法,但允许一些代码生成器为实现类生成特殊代码.
话虽如此,接口本身并不是一个"工具",因此它们不能满足特定的功能需求,但它们可以大大简化应用程序的设计,并广泛用于OO设计模式.本教程的基本资源是:http://www.csharp-station.com/Tutorial/CSharp/Lesson13