我知道这是一个非常基本的问题,但是面试官以一种非常狡猾的方式问我,我很无助:(
我只知道接口的材料或理论定义,并且还在我从事的许多项目中实现了它。但我真的不明白这为什么以及如何有用。
我也不明白界面中的一件事。即例如,我们使用
conn.Dispose();
在 finally 块中。但我没有看到该类正在实现或继承我的意思的IDisposable
接口(SqlConnection
)类。我想知道如何才能调用方法名称。同样在同一件事上,我不了解 Dispose 方法的工作原理,因为我们需要为所有接口方法使用我们自己的实现来实现函数体。那么接口是如何被接受或命名为合约的呢?直到现在,这些问题一直在我脑海中盘旋,坦率地说,我从来没有看到任何好的线程可以以我能理解的方式解释我的问题。
像往常一样,MSDN 看起来很吓人,那里没有一条清晰的线(伙计们,请原谅那些进入高级开发的人,我强烈认为任何代码或文章都应该到达任何看到它的人的脑海,因此就像许多其他人所说的那样,MSDN没用)。
面试官说:
他有 5 种方法,他很乐意直接在类中实现它,但如果你必须选择抽象类或接口,你选择哪一种,为什么?我确实回答了我在各种博客中读到的所有东西,说抽象类和接口的优点和缺点,但他不相信,他试图总体上理解“为什么是接口”。“为什么要抽象类”一般来说,即使我只能实现一次相同的方法并且不会改变它。
我在网上看不到任何地方,我可以得到一篇文章,可以清楚地向我解释接口及其功能。我是众多程序员中的一员,他们仍然不了解接口(我知道我使用的理论和方法),但对我清楚地理解它并不满意。