zoukankan      html  css  js  c++  java
  • C# 語法---7.接口interface

    一,什麼是接口
    • 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分
    • 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。
    • 接口使得实现接口的类或结构在形式上保持一致。
    二,接口特性
    1.接口類似抽象類,不能直接實例化;接口中的方法都是抽象方法
    2.接口不能 包含常量、字段、運算符、實例構造函數、析構函數或類型、不能包含靜態成員
    3.接口成員是自動公開的,不能包含任何修飾符
    4.接口自身可從多個接口繼承,類和結構可繼承多個接口,接口不能繼承類
    三.接口的實現
    接口的顯式實現:當類或結構要實現的是單個接口
    接口的隱式實現:當類或結構繼承了多個接口且接口
     //隱式實現  IReview rv = new ShopReview(); rv.GetReviews; ShopReview rv= new ShopReview();都能夠調用接口方法
        public interface IReview
        {
            void GetReviews();
        }
        public class ShopReview : IReview
        {
            public void GetReviews() { }
        }
        //顯式實現 GetReviews 只能通過接口來訪問,不能通過類訪問  如IReview rv = new ShopReview(); rv.GetReviews;能夠訪問 ShopReview rv= new ShopReview();不能訪問
        //可見顯式實現隱藏了代碼的實現,只能通過接口訪問而不是底層
        public interface IReview
        {
            void GetReviews();
        }
        public class ShopReview : IReview
        {
            void IReview.GetReviews() { }   
        }
      

    接口實例:

    namespace ConsoleApplication1
    {
        //公共接口
        public interface IProgram
        {
            void Fun();              //接口成員
        }
        class Program : IProgram
        {
            void IProgram.Fun()
            {
                Console.WriteLine("hello");
            }
            static Main(string[] args)
            {
                IProgram p = new Program();  //聲明接口實例,但不是實例化
                p.Fun();
                Console.Read();
            }
        }
    }     
    區別:
    • 當類實現一個接口時,通常使用隱式接口實現,這樣可以方便的訪問接口
    • 當類實現多個接口時,並且接口中包含相同的方法簽名,此時用顯式接口實現。標識出哪個方法屬於哪個接口
    • 隱式接口實現,類和接口都可訪問接口中方法。只能通過接口訪問
     
    四.接口的繼承
    1.接口的繼承與類的繼承不同,類的繼承可以繼承基類方法實現,而接口繼承只是繼承了父接口的成員方法說明
    2.接口的繼承允許多繼承
    3.被繼承的接口應該是可以訪問到的,不允許繼承private或internal類型
  • 相关阅读:
    4月1日作业总结,成绩
    4月8日作业重点及点评
    构建之法 东北师大站 冲刺领跑
    4月1日作业重点及点评
    3月25日作业总结,成绩
    3月18日作业总结,成绩
    3月25日作业重点及点评
    python: 反射机制;
    python: 基本知识(一)
    opencv: 轮廓提取;
  • 原文地址:https://www.cnblogs.com/ygtup/p/9358962.html
Copyright © 2011-2022 走看看