接口(C# 参考)

接口只包含方法委托事件的签名。方法的实现是在实现接口的类中完成的,如下面的示例所示:

 

  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# 编程指南)

下面的示例演示了接口实现。在此例中,接口 IPoint 包含属性声明,后者负责设置和获取字段的值。Point 类包含属性实现。

 
//  keyword_interface_2.cs
//  Interface implementation
using  System;
interface  IPoint
{
   
// Property signatures:
   int x
   
{
      
get;
      
set;
   }


   
int y
   
{
      
get;
      
set;
   }

}


class  Point : IPoint
{
   
// Fields:
   private int _x;
   
private int _y;

   
// Constructor:
   public Point(int x, int y)
   
{
      _x 
= x;
      _y 
= y;
   }


   
// Property implementation:
   public int x
   
{
      
get
      
{
         
return _x;
      }


      
set
      
{
         _x 
= value;
      }

   }


   
public int y
   
{
      
get
      
{
         
return _y;
      }

      
set
      
{
         _y 
= value;
      }

   }

}


class  MainClass
{
   
static void PrintPoint(IPoint p)
   
{
      Console.WriteLine(
"x={0}, y={1}", p.x, p.y);
   }


   
static void Main()
   
{
      Point p 
= new Point(23);
      Console.Write(
"My Point: ");
      PrintPoint(p);
   }

}

输出
My Point: x=2, y=3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值