zoukankan      html  css  js  c++  java
  • C#之接口

    接口类Interface1.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1 {
    
        /*
        接口:属性、方法、事件、所引器 默认为public 但不能包含常数、字段、
        运算符、实例构造函数、析构函数或其他类型、任何种类的静态成员
        不能包含字段
        成员不允许添加访问修饰符 abstract(抽象类)也不行
        不能包含实现成员的任何代码
        实现过程必须在实现接口的类中完成
        接口可实现多重继承
        */
        interface Interface1 {
        //属性
            //1->接口成员不允许有访问修饰符
            //2->接口中不能有字段,属性声明为自动属性
            string Index {
                get;
                set;
            }
         //方法
            //方法不能包含方法体
            void Descreption();
        }
    }

    对接口实现的类Class1.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1 {
        class Class1:Interface1 {
            private string _index;
            ////实现接口(隐式)
            //public void Descreption() {
            //    Console.WriteLine("接口描述"+this.Index);
            //}
            //public string Index {
            //    get;
            //    set;
            //}
    
            //接口实现(显式)
            void Interface1.Descreption() {
                Console.WriteLine("接口描述"+ _index);
            }
            string Interface1.Index {
                get {
                    return _index;
                }
    
                set {
                    _index = value;
                }
            }
        }
    }
     

    调用类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    using System.Runtime.InteropServices;
    
    namespace ConsoleApplication1 {
        class Program {
            static void Main(string[] args){
    
                Class1 class1 = new Class1();
                ////隐式的调用(具体类调用)
                //class1.Index = "嘿嘿";
                //class1.Descreption();
                //显式的调用(接口来调用)
                Interface1 interface1 = new Class1();
                interface1.Index = "嘿嘿";
                interface1.Descreption();
    
                Console.ReadKey();
    显式隐式实现方式并存的情况下,接口调用的是显性方法,类对象调用的是隐形方法
    当一个类实现的多个接口中具有相同的方法时,用显式方法来专门实现某个接口的方法时就显得非常有用
    } } }

     以前写的没一点印象了,下边接着忽悠

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 接口 {
        class Program {
            static void Main(string[] args) {
                Ijiekouable jiekou = new person();
                jiekou.jikou();
    
                Console.ReadLine();
            }
        }
        //接口,必须实现
        interface Ijiekouable {
            void jikou();
        }
        class person:Ijiekouable {
            public void jikou() {
                Console.WriteLine("隐式实现接口");
            }
            void Ijiekouable.jikou() {
                Console.WriteLine("显式实现接口");//优先级高
            }
        }
    }
  • 相关阅读:
    6.66 分钟,一文Python爬虫解疑大全教入门!
    十分钟快速入门 Python,看完即会,不用收藏!
    Python3中真真假假True、False、None等含义详解
    Python基础系列讲解——时间模块详解大全之time模块
    超详细Pycharm部署项目视频教程
    Python进阶量化交易专栏场外篇7- 装饰器计算代码时间
    docker 基本命令
    Linux常用命令
    Docker-部署Mysql
    docker 容器内运行vim命令
  • 原文地址:https://www.cnblogs.com/liuguan/p/5920730.html
Copyright © 2011-2022 走看看