我无法找到令人信服的答案,将对象声明为类或接口之间的确切区别。
以下代码之间有什么区别
ILogger log = new MyLogger(); //ILogger is an interface and MyLogger class implements ILogger
和
MyLogger log = new MyLogger();
两者都会创建MyLogger
类型的对象,然后两者之间有什么不同。
答案 0 :(得分:1)
不,如果您从对象创建的角度思考,但是如果您声明为
,则会有所不同ILogger log = new MyLogger();
然后你将能够直接访问那些函数,属性而不添加cast
,这些ILogger
在接口MyLogger log = new MyLogger();
中声明,但另一方面声明
MyLogger
当类实现接口ILogger
ILogger
以及接口{{1}}的所有函数和属性