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 修饰符。

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

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

  • 相关阅读:
    数据库索引的作用和长处缺点
    Spring的依赖注入
    Spring+Ibatis集成开发实例
    IOS开发之类和对象
    关于C++ const 的全面总结
    包管理器Bower使用手冊之中的一个
    项目总算完工了
    git reset and git checkout
    unity3D中协程和线程混合
    【剑指offer】左旋转字符串
  • 原文地址:https://www.cnblogs.com/czyhhxx/p/4457835.html
Copyright © 2011-2022 走看看