• 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);
        }
    }
  • 相关阅读:
    边界值分析
    等价类划分
    手工检测SQL注入(安全性测试)
    Web安全性测试
    Jmeter使用流程及简单分析监控
    使用可视化工具redisclient连接redis
    Java ThreadLocal的使用
    jvm中的新生代Eden和survivor区
    策略模式和工厂模式的区别
    java将一数组乱序排列
  • 原文地址:https://www.cnblogs.com/myseasky/p/6704287.html
Copyright © 2020-2023  润新知