小弟最近学C#.看了CSharp Primer 有几个问题不懂,特来提问...
第一.什么是抽象类?有什么用
第二.什么是接口?有什么用
暂时想到这两个,先问了...

解决方案 »

  1.   

    1 抽象类,就像大侠说的没有提供完整的实现。举个简单的例子,比如读文件,有各种文件INI、XML ... 它们的格式是不一样的,但是打开文件等处理可以是相同的。这样就定义一个抽象类,里面提供共同的操作,但是实际处理数据的方法只提供了定义,没有实现。需要子类来实现。
    2 接口,也像大侠说的,在做程序的时候如果能将一个对象看作都各类型是很有用的。但是C#是单继承,但是接口可以实现多个。这样就解决了这个问题。比如:
    public interface System.ICompareble{
       Int32 CompareTo(Object object);
    }
    public class test : ICompareble{
       public test()
       {
       }    public Int32 CompareTo(Object object)
        {
             // do something;
        }
    }class App
    {
        (ICompareble)test .CompareTo(...)}
    可以将test 看作多个类型处理。
      

  2.   

    1 abstract class 关于抽象类的定义很多(回忆C++中好象有4点),  1.主要有就是至少存在一个虚方法(abstract method)的类就是抽象类.
      2.定义为abstract的类是抽象类...  虚方法==抽象方法==只有声明没有实现的方法: byte[] StringToByte(string value);
      
      3.必须通过继承实现,否则派生类也成为抽象类.2 interface 接口
      接口类似于抽象类,但接口不提供任何实现,抽象类可以实现99%的方法(只留至少一个abstract方法)
      一般不考虑定义接口,而使用抽象类,定义接口主要用来类似于多重继承的效果。(即多态)