我最近看了c#感觉和C的差别还是挺大的,我想问一下谁能把这个接口和继承讲的明白一点,为什么要有接口,之用继承不可以吗?在什么情况下能用接口,而在什么情况下能用继承那,或者说什么情况下用接口比用继承好

解决方案 »

  1.   

    接口 可以用在引用类型 和值类型上 是boxing unboxing减少
    可以实现多个接口
    接口只有方法和属性 可以隐藏具体数据 保护类型
      

  2.   

    继承和接口最大的区别就是继承是实现的复用,而接口是声明的复用。继承如:
    手机:实现了通话         
    MP3手机:在已实现的通话基础上再实现MP3播放   
    智能手机:在已实现通话、MP3播放的基础上再实现操作系统的其他功能,并且可以在以前的MP3输出中增加音效处理等
    我可以做一个列表,存一大堆手机,在通话的时候可以直接用通话功能,也可以用运行时信息判断是不是MP3手机,如果是的话就可以听MP3接口如:(假设有接口名为“照明”)
    灯:实现照明接口(假设它有父类是电器)
    燃烧:实现照明接口(假设它有父类是化学反应)
    太阳:实现照明接口(假设它有父类是恒星)
    我可以存一个列表,存一大堆照明接口,在看不见的时候拿出来照明就行了,因为我并不关心它具体是什么。
    通常,好几个类没有共同的父类,但又具备一组相同的行为时,可以考虑使用接口,将其行为一般化。
      

  3.   

    lake_cx 的解释不错,受教,学习。