黑马程序员技术交流社区

标题: 谁帮我写个接口的例子啊 [打印本页]

作者: 派大星    时间: 2012-2-14 16:18
标题: 谁帮我写个接口的例子啊
听说过接口. 不知道是怎么回事. 和继承的有什么关系呢?
作者: 周平武    时间: 2012-2-14 16:34
接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。但是,如果基类实现接口,派生类将继承该实现。
测试代码:
interface I
{
void Fun();
}
class A : I
{
public void Fun()
{
}
}
class B:A
{
}
以下测试返回值为true:
B b = new B();
bool bTest = b is I;
作者: 许庭洲    时间: 2012-4-28 15:42
//打印接口IPrint
public interface IPrint
{
    void  Print();
    void  PrintPreview();
}
//调用接口的主程序
static void Main()
{
    Console.WriteLine("Please select printer: ");
    string printerName=Console.ReadLine();
    IPrint printer=null;
    if(printerNmae=="HP")
    {
         printer=new HPPrinter();
    }
    else if(printerName=="IBM")
    {
         printer=new IBMPrinter();
     }
     else  if(printerName=="Epsom")
     {
          printer=new EpsomPrinter();
     }
     printer.PrintPreview();
     printer.Print();
}
//HPPrint类
public class HPPrint:IPrint
{
  public void PrintPreview()
  {
      Console.WriteLine("this is HP Printer");
  }
  public void Print()
  {
     Console.WriteLine("this is HP Printer");
  }
  
}

//IBMPrint类
public class IBMPrint:IPrint
{
  public void PrintPreview()
  {
      Console.WriteLine("this is IBM Printer");
  }
  public void Print()
  {
     Console.WriteLine("this is IBM Printer");
  }
  
}
//EpsomPrint类
public class EpsomPrint:IPrint
{
  public void PrintPreview()
  {
      Console.WriteLine("this is Epsom Printer");
  }
  public void Print()
  {
     Console.WriteLine("this is Epson Printer");
  }
  
}

这就是接口的作用,希望对你有帮助。


作者: 黄燕京    时间: 2012-4-28 19:40
接口可由方法、属性、事件、索引器或这四种成员类型的任意组合构成。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型。它不能包含静态成员。接口成员是自动公开的,且不能包含任何访问修饰符。

类或结构实现接口时,该类或结构将为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。但是,如果基类实现接口,派生类将继承该实现。派生的类被认为是隐式地实现接口。

类和结构按照类继承基类或结构的类似方式实现接口,但有两个例外:

类或结构可实现多个接口。


类或结构实现接口时,仅接收方法名称和签名,因为接口本身不包含实现,如下面的示例所示。




C#



复制



public class Car : IEquatable<Car>
{
    public string Make {get; set;}
    public string Model { get; set; }
    public string Year { get; set; }

    // Implementation of IEquatable<T> interface
    public bool Equals(Car car)
    {
        if (this.Make == car.Make &&
            this.Model == car.Model &&
            this.Year == car.Year)
        {
            return true;
        }
        else
            return false;
    }
}








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2