我知道这是一个非常基本的问题,但是一位面试官用一种非常狡猾的方式问了我一个问题,我很无奈:
我只知道接口的材料或理论定义,并且在我参与的许多项目中也实现了它。但我真的不明白为什么这个有用。
我也不明白一件事情在接口。例如,我们使用
conn.Dispose();
in finally block. But I don't see that class is implementing or inheriting IDisposable
interface (SqlConnection
) class I mean. I am wondering how I can just call the method name. Also in the same thing, I am not understanding how Dispose method works as because, we need to implement the function body with our own implementation for all interface methods. So how Interfaces are accepted or named as contracts? These questions kept on rolling in my mind till now and frankly I never saw any good thread that would explain my questions in a way that I can understand.
MSDN 像往常一样看起来非常吓人,没有一条线是明确的(各位,请原谅那些进入高级别开发的人,我强烈地感觉到任何代码或文章都应该到达任何看到它的人的头脑中,因此就像许多其他人说的,MSDN 是没有用的)。
面试官说:
他有5个方法,他很乐意直接在类中实现它,但是如果你必须选择抽象类或接口,你会选择哪一个,为什么?我确实回答了他所有的东西,我在各种博客上看到说优点和缺点都抽象类和接口,但他不相信,他正在试图理解“为什么接口”一般。“为什么抽象类”一般情况下,即使我只能实现相同的方法一次,而不会改变它。
我看不到在网络的任何地方,我可以得到一篇文章,将解释我清楚的接口及其功能。我是许多程序员中的一员,他们仍然不了解接口(我知道我所使用的理论和方法) ,但是对我清楚地理解它并不满意。