C# 浅谈 接口(Interface)的作用

继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的

1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类 《至少》要实现哪些功能,继承它的类可以增加自己的方法.

2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如: 两个类 "狗"和"猫",如果它们都继承了接口"动物",其中动物里面有个方法Behavior(),那么狗和猫必须得实现Behavior()方法,并且都命名为Behavior这样就不会出现命名太杂乱的现象.如果命名不是Behavior(),接口会约束即不按接口约束命名编译不会通过.

3.提供永远的接口。 当类增加时,现有接口方法能够满足继承类中的大多数方法,没必要重新给新类设计一组方法,也节省了代码,提高了开发效率.

举个代码示例:

//公共接口: "动物" 
public Interface IAnimal 

      int EyeNumber; 
      private void Behavior(); //行为方法,描述各种动物的特性 
}

//类: 狗 
public Dog : IAnimal 

     string ActiveTime = "白天"; 
     private void Behavior() 
     { 
           Console.Write("我晚上睡觉,白天活动"); 
      } 
}

//类: 猫 
public Cat: IAnimal 

      string ActiveTime = "夜晚"; 
       private void Behavior() 
       { 
                  Console.Write("我白天睡觉,晚上活动"); 
        } 
}

//简单的应用: 
public static Main() 

       Dog myDog = new Dog(); 
       myDog.Behavior(); //输出: "我晚上睡觉,白天活动" 
       Cat myCat = new Cat(); 
       myCat.Behavior(); //输出: "我白天睡觉,晚上活动" 
}

以上调用不同的类的相同名方法,会输出不同的东东,也就是说每个类里面的同名方法完成的功能可以是完全不同的.

更进一步,不是用上面Main方法这样一个一个调用类的方法,用多态性实现其调用.

看一下下面这个方法:

public Behavior(IAnimal myIanimal) 

       myIanimal.Behavior(); 
}

其参数是<<接口类型>>,任何继承它的类都可以调用此方法,此方法能根据类的不同调用不同的类中的方法. 也即能够自己根据不同的类,完成不同的类的功能.

多态性代码示例:

Dog myDog = new Dog(); 
Cat myCat = new Cat(); 
Behavior(myDog); //Behavior接受“狗”类实例 
Behavior(myCat); //Behavior接受“狗”类实例

这样Behavior方法写一次就能完成所有继承它的类中的相同名方法的不同功能. 非常方便,

同样,由于“动物软件”功能需求,需要再增加一个"龟"类:

//类: 龟 
public Tortoise: IAnimal 

       string ActiveTime = "很难说"; 
       private void Behavior() 
       { 
                  Console.Write("我可以不活动,一睡就睡五千年!"); 
       } 
}

那么也可以调用上面多态方法,所以说接口使方法具有较好扩展性.如果继承它的类很多的话,有多少好处是可想而知的!

时间: 2024-08-07 23:23:43

C# 浅谈 接口(Interface)的作用的相关文章

Rommel - C# 浅谈 接口(Interface)的作用

鉴于网上太多太多的对C# 接口的误解,想来想去还是自己做一个完美的接口 篇章 继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类 <至少>要实现哪些功能,继承它的类可以增加自己的方法. 2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如: 两个类 "狗"和"猫",如果它

浅谈接口、抽象类、抽象方法和虚方法的区别

C#抽象类和接口孩子间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意.其实,两者之间还是有很大区别的. 首先说一下接口与抽象类的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的. 2.抽象类中的抽象方法和接口方法一样,都不能有方法体 不同点: 1.抽象类里可以有字段,接口中不能有字段. 2.抽象类中的普通方法可以有方法体,而接口方法没有方法体. 3.接口中的方法不能有访问修饰符,抽象类中的抽象方

浅谈 接口

接口: 先看下面一段话: 如果,你即将准备开始编程,就是那种 感觉需要很多很多类,而其中有些类,你已经提前知道需要哪些共同的功能.怎么办?当然首先想到,提前给他们规定好一种模式,规定他们是什么样的方法,有返回值,还是无返回值,返回啥种类型,等等的规定. 接口,就是可以帮助你的.接口,只是一种规范,一种约束. 概念:接口,是把方法都组合起来,以封装特定功能的集合. 注意:  1.一旦类实现了接口,类就可以支持接口所指定的所有属性和成员. 2.声明接口在语法上与声明抽象类完全相同,但是不允许接口中有

《浅谈——接口》

经过上周的学习,让我对JAVA中的接口有了初步了解.下面就把我学到关于接口的一些写出来. 我们需要学习接口的用法就需要先对抽象类有所了解,那么什么是抽象类呢?其实抽象类与普通类最大的区别就是:抽象类只可以声明定义,但是不可以对抽象类实例化:而对于普通类来说,我们都知道,它是可以实例化的,也就是可以生成一个对象来使用.而抽象类我们则需要用abstract关键字来修饰.同时,抽象方法是没有方法主体的,换句话说就是由abstract修饰的方法只有方法的声明,没有方法的实现.如: /** * 普通类 *

浅谈接口自动化测试

昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路. 这篇博客,就说说功能测试到接口自动化的进阶,以及接口自动化的一些事... 前言 自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势.未来,功能测试等非核心的测试工作,都将被外包. 想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能. 在<Google软件测试之道>一书中有介绍

浅谈C# application.DoEvent作用

Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息. [c-sharp] view plain copy private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) { label1.Text = i.ToString(); Application.DoEvents(); } } 测试了一下,没有Application.DoEven

浅谈(接口)测试注意事项四

大概列举一下自己在工作中总结的一些关于接口测试需要考虑的内容 接口测试  checklist (检测点) 1.  正常功能: a. 只填入接口参数必填项,实现正常功能 b. 参数全部填写正常数据,实现正常功能 2. 接口背后逻辑是否正确 例如:红包领取个数接口,接口内部逻辑如何计算红包领取个数的逻辑是否正确,这个需要和开发了解具体实现逻辑,和产品了解需求,看是否一致 3. 接口所有返回类型的code及msg都要用例覆盖:返回类型的code及数据是否满足所有业务的需求 4.  异常: a.必填项字

python 之浅谈接口的定义和抽象类以及抽象方法

#_*_ coding:utf-8 _*_ #知识点:接口的定义和抽象类以及抽象方法 ''' 1.抽象类式啥? 抽象类加上抽象方法就等于接口 2.接口的定义 含义1.别人给你暴露一个URL,然后调用这个URL 含义2.定义一个规范,不写具体实现,按照这个规范去实现相关功能,抽象类就是属于这种 ''' from abc import  ABCMeta, abstractmethod #定义一个抽象类 class Alert:     __metaclass__ = ABCMeta     @abs

浅谈品牌设计对企业的作用

无论大中小型企业,品牌都是一个企业的代表,是凸显企业文化的重要标志,每一次设计都代表着企业文化以及独特的构思,涵盖了深重的品牌理念,设计一款特色品牌设计,使人眼前一亮,直接打造品牌效应,树立企业形象. 当我们发现一个新意的物件时,与身边人探讨,当发现双方都很喜欢时,会引起强烈的赞同感,就是所谓的共鸣,一旦欣赏变会更加关注,从而提升购买欲望,当品牌设计足够吸引人,消费者便会留意及关注,其实这是一种打开市场的有效方式之一. 品牌与自身的企业文化具有密不可分的关系,因此每个企业的品牌都是具有不同灵魂和