2010-11-08 36 views
1

我目前正在学习C#书籍的继承章节。我无法理解以下行。从C#书籍中了解接口定义

接口使您能够对象的定义从它们的实现分离,使得该对象可以在没有现有的应用程序不兼容引入的风险 发展。

任何人都可以帮助我理解那个文本行是怎么说的例子吗?

+0

覆盖有用的这个问题可能会帮助您清理的东西了一下:http://stackoverflow.com/q/1335586/13198 – TheVillageIdiot 2010-11-08 09:20:54

+0

我也可以知道上面这行中的“对象的定义”是什么? – Soja 2010-11-08 09:39:32

+0

感谢所有的时间和帮助。 – Soja 2010-11-08 10:09:47

回答

0
Interfaces enable you to separate the definition of objects from 
their implementation 

在这种情况下,对象的定义是指对象的公开曝光部分。 在下面的示例中,它指的是公共属性Name/Age和公共方法InsertUpdate。 在下面的类中,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在他们的答案上面,所以我不会重复同样的

0

好了,我不知道我倒是完全同意行 - 毕竟,你可以仍然放在实现中的错误 - 但问题是抽象的;如果你所知道的是IAnimal有一个Speak()方法,你不需要知道关于DogCat等;你不需要知道什么时候有人交换DogDogFacade,LazyLoadedDog等等。只要他们给你的东西是IAnimal,你会很高兴 - 并且不需要改变下游代码。

(如果Dog类要暴露Bark()方法来代替,然后就是罚款;它可以有Speak作为明确的实施IAnimal.Speak

0

这意味着,界面允许您定义的基本一组事物的功能。他们将如何执行这些功能本身就留给了这些事情。例如,一个人可以走路,但男性,女性,老人,小孩等走路的方式是不同的,但我们可以说他们都走路了。

所以,一个接口是一组放在一起的函数,它们可以通过不同的类来实现。