zoukankan      html  css  js  c++  java
  • C#和Java接口对比

    C#和java的接口有很多类似之处,对于编程约束和设计模式的实现有重要作用。这里记录几个知识点。

    1. C#的接口中不能有字段,但Java的接口中允许有static final修饰的字段/域(field)。
    2. Java的接口中一般包含方法签名和上述的static final修饰的域(Java的类成员一般包括构造函数,析构函数,普通方法,域)。C#的接口中可以包含方法签名,属性,事件,索引等,实际上,C#中的这些类成员在编译成IL时都会进行处理转为方法。
    3. 接口中的方法签名都不能是静态的。
    4. 语法形式上,接口中的方法都是公共的,Java的接口中的方法签名可以显示声明public或者不声明,C#接口中的方法签名不允许显示声明public。
    5. 实现上,接口都是一种行为约束,表示类具有某种能力。共同点是,都可以在实现接口的类中,用public实现(而且是必需实现)接口中所有的方法签名。不同的是,C#接口独有的显示实现。C#的类中对接口的显示实现注意一下几点:1)显示实现时方法不用public修饰(但默认为public)。2)显示声明的方法只能由接口调用,类及其实例不能调用。3)类实现某一接口时,可以只一般实现接口成员(public),显示实现接口成员(只能通过接口调用),也可以同时一般实现和显式实现共存(共存时规则不变,一般实现可以由接口或者类变量调用,显式实现只能由接口的变量调用)。

    interface IInterface
    {
        string AProperty { get; set; }
    }
    
    class TestClass:IInterface
    {
        public string AProperty { get; set; }
        string IInterface.AProperty { get; set; }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            TestInterface();
            Console.ReadKey();
        }
    
        private static void TestInterface()
        {
            IInterface aInterface = new TestClass();
            TestClass aClass = new TestClass();
            aInterface.AProperty = "aaaaaaaaaa";
            aClass.AProperty = "bbbbbbbbbb";
            Console.WriteLine(aInterface.AProperty);
            Console.WriteLine(aClass.AProperty);
        }
    }
  • 相关阅读:
    枚举Android系统的进程,任务和服务的信息
    android Gallery可循环显示图片
    android获取正在运行的进程
    Android Textview控件
    android中使用代码混淆出现Conversion to Dalvik format failed with error 1错误的解决办法
    Android断点续传
    vim常用快捷键
    V型开发过程
    CentOS 5.5 中文乱码问题解决方案
    使用yum来安装或卸载CentOS图形界面包 [linux技术]
  • 原文地址:https://www.cnblogs.com/myseasky/p/6704287.html
Copyright © 2011-2022 走看看