• interfaces


    直接进入我们精彩的内容

    ==接口与抽象类类似,都无法申明变量

    它们的区别与相似之处:

    Abstract Class Vs. Interface 
    ØInterfaces are very similar to abstract classes.
    ØC# doesn’t allow multiple inheritance with classes.
    ØC# does allow to implement any number of interfaces and derive from one base class.

    一个类可以有多个接口,但是必须实现接口里的所有函数

    来举个例子:

    namespace ConsoleApplication1
    {
        class Program
        {
    
            public interface IStorable
            {
                void Read();
                void Write();
            }
    
            interface ICompressible
            {
                void Compress();
                void Decompress();
            }
            interface ILoggedCompressible : ICompressible
            {
                void LogSavedBytes();
            }
    
            public class Document : IStorable, ICompressible
            {
                public void Read()
                {
                    Console.WriteLine("read");
                }
                public void Write()
                {
                    Console.WriteLine("write");
                }
                public void Compress()
                { }
                public void Decompress()
                { }
    
            }
    
    
            static void Main(string[] args)
            {
                Document document = new Document();
                document.Write();
                
    
    
            }
        }
    }
    

      //类里的函数必须public

    接下来介绍显式与隐式接口里函数的定义

    增加了一个新的接口:

    interface ITalk
    {
        void Talk();
        void Read();
    }
    

    实现显式定义:

    void ITalk.Read()
                {
                    Console.WriteLine("reeeead");
                }
    

    //这里不加public

    隐式加virtual

            static void Main(string[] args)
            {
                Document firstDocument = new Document();
                firstDocument.Read();
                ITalk secondDocument = firstDocument;
                secondDocument.Read();
    
            }
    

      

    显示定义的接口方法,不能有abstract, virtual, override, or new 修饰符。

    因为显示实现的接口成员不能继承。

    最后我感觉接口的使用要比抽象类方便很多。

  • 相关阅读:
    注册算法入门
    call传参之通过堆栈
    winhex注意
    输入字符串长度
    integer promotion
    网页flash兼容浏览器代码
    逆向工程——注册篇
    esp定律的一点说明
    base64
    意外
  • 原文地址:https://www.cnblogs.com/czyhhxx/p/4457835.html
Copyright © 2020-2023  润新知