我目前正在学习C#书籍的继承章节。我无法理解以下行。从C#书籍中了解接口定义
接口使您能够对象的定义从它们的实现分离,使得该对象可以在没有现有的应用程序不兼容引入的风险 发展。
任何人都可以帮助我理解那个文本行是怎么说的例子吗?
我目前正在学习C#书籍的继承章节。我无法理解以下行。从C#书籍中了解接口定义
接口使您能够对象的定义从它们的实现分离,使得该对象可以在没有现有的应用程序不兼容引入的风险 发展。
任何人都可以帮助我理解那个文本行是怎么说的例子吗?
Interfaces enable you to separate the definition of objects from
their implementation
在这种情况下,对象的定义是指对象的公开曝光部分。 在下面的示例中,它指的是公共属性Name/Age
和公共方法Insert
和Update
。 在下面的类中,Person及其实现(用于实现属性和方法的代码)的定义与Person类相同。
Class Person
{
private string _name; //private fields
private string _age; //private fields
public Name {get {....} set {.....}} //public properties
public Age {get {....} set {.....}} //public properties
public void Insert() {.......} //public methods
public void Update() {.......} //public methods
}
注:“........”代表实际的代码时,这些属性/方法被调用即其实施将被调用。
现在,如果我是这样做创建此接口称为
Interface IPerson
{
public Name get; set; //public properties
public Age get; set; //public properties
public void Insert(); //public methods
public void Update(); //public methods
}
,然后做Class Person : IPerson
那么我所做的是,我现在已经从执行即Person
分离的定义,即IPerson
。
注:为什么这是已经被阿米尔和Gravell在他们的答案上面,所以我不会重复同样的
好了,我不知道我倒是完全同意与行 - 毕竟,你可以仍然放在实现中的错误 - 但问题是抽象的;如果你所知道的是IAnimal
有一个Speak()
方法,你不需要知道关于Dog
,Cat
等;你不需要知道什么时候有人交换Dog
为DogFacade
,LazyLoadedDog
等等。只要他们给你的东西是IAnimal
,你会很高兴 - 并且不需要改变下游代码。
(如果Dog
类要暴露Bark()
方法来代替,然后就是罚款;它可以有Speak
作为明确的实施IAnimal.Speak
)
这意味着,界面允许您定义的基本一组事物的功能。他们将如何执行这些功能本身就留给了这些事情。例如,一个人可以走路,但男性,女性,老人,小孩等走路的方式是不同的,但我们可以说他们都走路了。
所以,一个接口是一组放在一起的函数,它们可以通过不同的类来实现。
覆盖有用的这个问题可能会帮助您清理的东西了一下:http://stackoverflow.com/q/1335586/13198 – TheVillageIdiot 2010-11-08 09:20:54
我也可以知道上面这行中的“对象的定义”是什么? – Soja 2010-11-08 09:39:32
感谢所有的时间和帮助。 – Soja 2010-11-08 10:09:47