显示接口和隐式接口的区别

发表日期:2018-10-11 作者:郑州网站建设 来源:郑州网站制作 浏览次数:1019

显示接口和隐式接口的区别


个人分类: C#

<1>隐示实现接口和类都可以访问 显示实现只有接口可以访问。

<2>显示实现益处

1:隐藏代码的实现功能

2:在使用接口访问的系统中,调用者只能通过接口调用而不是底层的类来访问,有利于安全性

 综上:当类或结构继承接口时,意味着该类或结构为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。基类实现接口,派生类将继承该实现

public class CC_BASIC_CAL : ICC_BASIC_CAL{//显示实现接口   隐士实现接口的区别:隐示实现接口和类都可以访问 显示实现只有接口可以访问。//显示//double ICC_BASIC_CAL.GetCastSpeed(double length)//{//    throw new NotImplementedException();//}//double ICC_BASIC_CAL.GetLength()//{//    throw new NotImplementedException();//}//List ICC_BASIC_CAL.GetProducsList(string factoryName)//{//    throw new NotImplementedException();//}//=======================================================//隐士public double GetCastSpeed(double length){throw new NotImplementedException();}public double GetLength(){throw new NotImplementedException();}public List GetProducsList(string factoryName){throw new NotImplementedException();}}

隐示实现接口和类都可以访问

public class test{void test1(){CC_BASIC_CAL cc = new CC_BASIC_CAL();cc.GetLength();ICC_BASIC_CAL cc1 = new CC_BASIC_CAL();cc1.GetLength();}}

显示实现只有接口可以访问。

public class test{void test1(){CC_BASIC_CAL cc = new CC_BASIC_CAL();cc.GetLength();//报错,不能访问ICC_BASIC_CAL cc1 = new CC_BASIC_CAL();cc1.GetLength();}}

另外:

 /*
            重写和隐藏的定义:
            重写:基类方法声明为virtual(虚方法),派生类中使用override申明此方法的重写.
            隐藏:基类方法不做申明(默认为非虚方法),在派生类中使用new声明此方法的隐藏。
            
            自己的理解:
            比如父类A,有个方法标记为virtual,a(){}子类B继承A,也声明一个方法a(){}  
            如果B里面的a()使用override,那么访问A的方法时实际上调用了B里面声明的方法,相当于A的方法被覆盖了,new就不是,
            访问A的a还是A里面定义的方法,访问B就是B里面定义的方法.
            说白了:new是覆盖,override是重载,“覆盖”并不意味着“删除”,但“重载”意味着“删除”,
            这就是“覆盖”和“重载”的区别 
            隐藏(new)示例:
         */


软件开发,网站建设,微信开发,小程序开发,APP开发,商城系统开发,直播系统开发,产品推广,短视频推广,就找易祺互联!
易祺互联为您提供:商城系统,智慧物业管理系统,“好差评”系统,食品溯源系统,智慧点巡检系统,农村电商系统,智慧河道水位监控系统,智慧环境监测系统,机房动力环境监控系统,ERP系统,智能建站系统,商城系统,直播系统,各种软件/网站定制开发,网站托管等一站式运营解决方案。
易祺互联 @ 河南蓝燕网络科技有限公司旗下运营品牌
统一社会信用代码:914101055710161107
软件设计部运营中心:河南省郑州市金水区芯互联大厦南座11层
智慧物联网运营中心:河南省郑州市金水区花园路1号河南省人民会堂
新产品培育运营中心:河南省郑州市金水区黄河路25号经津大厦10楼
北京市(华北区)运营中心:北京市海淀区双清路33号清华大学学研大厦B座10层
广州市(华南区)运营中心:广东省广州市黄埔区科汇四街11号
杭州市(华东区)运营中心:杭州市拱墅区祥园路杭州国际人才创新创业中心A座10层
重庆市(西南区)运营中心:重庆市江津区双福新区联东U谷12栋
业务咨询:0371-60934100 手机:18737894979 国内热线:400-8778-670
技术服务:15516975329 投诉热线:185-38935-211