zoukankan      html  css  js  c++  java
  • 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 修饰符。

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

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

  • 相关阅读:
    [GoogleAppEngine]编译问题-locale zh_CN
    [Android]Webview中JS接口调用Java-版本问题
    [HTTP基础]3. HTTP链接
    [WebView]简单总结
    [HTTP基础]1.网络开发必备的HTTP协议知识
    [HTTP基础]2.Http和Socket区别
    [HTTP]Android抓包方法(Wireshark)
    [Android]Process&Thread-基本原理
    [Android]Thread两种实现方法
    [Android]消息队列模型——Thread,Handler,Looper,Massage Queue
  • 原文地址:https://www.cnblogs.com/czyhhxx/p/4457835.html
Copyright © 2011-2022 走看看