C#

C#高级进阶-[接口]方法

2018-03-22  本文已影响124人  xzhuan

Aitin原创稿件,转载请注明出处!

C#语法进阶 <抽象类>方法
/* 
* 接口
* 1.使用Interface关键字 创建的数据类型
* 2.特点
*      2.1 接口是抽象的,是一组行为的抽象
*      2.2 接口只表达" Can do?" , 不表达" How do?"
*      2.3 接口只关注行为,不关注数据和行为的实现
*      2.4 接口是规范,定义一组对外行为的规范,要求它的实现类 必须遵循
*      2.5 实现类必须实现 接口的所有成员
*      2.6 接口中不能包含字段, 可以包含[方法,属性,索引器,事件]
*      2.7 接口中所有成员不能加任何访问修饰符,默认公有
*      2.8 接口中所有成员不能有实现, 全部默认抽象的
* 3.作用 适用情况
*      3.1 扩展一个已有类的行为
*      3.2 规范不同类型的行为,达到不同类型的行为一直
*      eg:   
*            [行为接口] 吃,飞,走,游泳
*            动物:   
*            鸟: 吃,飞,走
*            狗: 吃,走
*            鱼: 吃,游泳
* 4.使用
*      4.1 接口之间可以继承,且可以多继承
*      4.2 类与类→单继承,类与接口→多实现,接口与接口→多继承
*      4.3 结构(struct) 可以实现接口, 但不能继承
*      4.4 实现方式:
*              4.4.1 隐式实现
*                        特点:   1.写法   修饰符public+实现方法
*              4.4.2 显式实现  
*                        特点:   1.写法  (修饰符 默认private)接口名.实现方法
*                                   2.调用 只能通过接口类型的引用 调用
*                                   3.作用
*                                      解决 接口中的成员对实现类不适用的问题    
*                                      解决 多个接口实现时的二义性
*                        
*/
namespace LearnDemo20180322
{
   class Program
   {
       static void Main(string[] args)
       {
           Hawk hawk = new Hawk();
         

       }
   }

   //鸟 老鹰 麻雀 鸵鸟 企鹅
   abstract class Bird
   {
       int leg;
       string feather;
       abstract public void Game();
   }

   /// <summary>
   /// 接口
   /// </summary>
   interface IAction
   {
       void Walk();
       void Fly();
       void Swimm();
   }
   /// <summary>
   /// 老鹰
   /// </summary>
   class Hawk : Bird, IAction
   {
       public override void Game()  //抽象重写
       {
           
       }
       public void Fly()   //隐式实现 接口
       {

       }
       public void Walk()  //隐式实现 接口
       {

       }
       void IAction.Swimm()  //显式实现 接口 <老鹰 不会游泳,使用显式实现,一定程度 避免接口污染>
       {

       }
   }
}
上一篇 下一篇

猜你喜欢

热点阅读