黑马程序员---面对对象之接口的定义和使用

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------



1为什么使用接口

       当我们想给一个类提供附加的功能时,由于C#是一种单继承的语言,(一般情况下,那个个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。

        而接口是可插入性的保证。在一个等级结构中的任何一个类都可以实现一个接口,接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方 法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个 接口类型装载,传递实现了他的所有子类即多态的使用)。

      综上,接口的作用就是保证系统中类的功能可插入性,可扩展性。

2接口的定义

 interface  接口名

{

   方法签名(默认public)

   属性(get和set方法无方法体)

  索引(特殊结构的属性,)

 事件(托管变量的属性)

}

3 接口的实现

 例子:

  interface Iwalkable
        {
            void  walk();   
            int   legnum
              {
                  get;
                  set;
              }

        }
  class Person:Iwalkable(放在接口名上-右键-实现接口)
{
    public  void  walk()
   {  
    //实现代码
    }
 public  int  Legnum
    {
      get
     {
        //取值
      }
       set
     {
    //赋值
    }
 }
 }

4 实现的两个接口的方法重名的解决:定义时方法前加上接口名,使用时由接口对象调用

例子: 

interface I1
{
  void  Func();
}
nterface I2
{
  void  Func();
}
class Myclass :I1,I2(右键-显示实现接口)
{
public void  I2.Func()
{
//实现代码
}
public void  I2.Func()
{
//实现代码
}
}
static  void  Main(string []  args)
{
Myclass m=new  Myclass();
//先将对象转换成接口对象
((I1)m).Func();

}

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值