“理解接口和抽像类,这是.NET的核心之一了,大型的应用软件中,要设计成高可扩展性的应用程序,得依赖松散耦合的原则,高内聚低耦合,接口负责只作业务的定义,把定义和现实很好的剥离了,能够更好的满足这种原则,所以在.NET的设计中不用接口是不敢想像的,在C#中是采用单类多接口的继承方式来进行实现,C++中是多类继承的方式,在petshop4.0中整个的技术架构就是用的接口,在.net Framework(1.0,1.1,2.0,3.0)中也全部是采用接口的设计思想! ”我用C#时间不长所以感觉C#语言中的“接口”和“抽像类”都没有用到,我不知道什么时候会用到这个
想请教下大家,一起来讨论下,最好有举例子看看

解决方案 »

  1.   

    1.我感觉用不用接口还是看需要,
    public class B:IB
    {
    }
    public class A
    {
      private IB b;
    }
    假如B对象压根就不会有替换或分离的可能性,就不用依赖接口IB了.假如B对象需要替换,可以使用像PETSHOP那种工厂2.抽象类我在使用中更多的是因为代码重复才使用它楼下拍砖
      

  2.   

    "假如B对象压根就不会有替换或分离的可能性,就不用依赖接口IB了.假如B对象需要替换,可以使用像PETSHOP那种工厂 "
    这句话糊里糊涂的
      

  3.   

    抽象类:
         c#允许把类和函o数声明为abstract,抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写,抽象函数也是虚拟的。如果一个类中
    包含抽象方法,那么这个类一定是抽象类。抽象类中不一定包含抽象方法
    abstract class Building
    {
       public abstract int Calculate();
    }public class FinalCal:Building
    {
      public override int Calculate()
      {
      }
    }派生类实现一个抽象类,则要重写该抽象类中的所有抽象方法接口:
    接口是一种特殊的抽象类,使用interface关键字修饰,声明接口在语法与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式,即不能有方法的实现
    不能实例化接口,只能包含方法签名,并且不能被实例化和构造方法,只能由其实现类得到实例。接口也不能包含运算符的重载public interface IDis()
    {
      void Dispose();
    }
    class SomeClass:IDis
    {
       public void Dispose()
       {}
    }
      

  4.   

    如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本。
    如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。
    如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。   
    抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。
     interface A
        {
            void About();
        }    class B : A
        {
            public void About()
            {
                Console.WriteLine("B");
            }
        }    class MainClass
        {
            public static void Main()
            {
                B b = new B();
                b.About();
                Console.Read();
            }
        }
    参考
      

  5.   

    两个最大区别:
    1、接口是对行为的规定,而抽象类也是类,类是对对象的抽象,这个是最大的不同。
    2、对C#来说,类只能当继承,而接口可以对继承。lz可以在网上搜索接口和抽象类的区别,有很多人进行过比较。