我想知道什么是抽象类.什么是接口.
它们的特征和区别是什么?
我是新人,请前辈们指点...

解决方案 »

  1.   

    抽象类:
       是一个类型, 是一个还没有完善类型。里面的方法体,可能有 还没有写的, 
        不能够new 一个这样类型 的对象。
    接口:
       是一个 命令,是要求,
       要求 其它实现这个接口的类,要有这个接口中 所宣布的方法, 
       所以说: 接口就是要求 这个类要有哪些方法。剩下的: 
       你自已看吧。
      

  2.   

    主要不同是;
      接口可以当变量来用。假如: 
       类A 实现了接口I --类A不是抽象类
    如下:A a= new A();
    I i = a; 好比:
      接口I 只在对象抽取,它要求要实现的部分的(方法,属性
      由 这部分组成 一个类型。
      然后new 一个这样的对象,
      让这个对象 用(引用的变量)I i;接住。 
      

  3.   


    如果:
    《1》
    在C# 中,大家不要把interface 叫做 {接口},
     而称interface  为“类要求”。那就好理解多了。
    《2》
    大家也不要把 [抽象类] 叫成 {抽象类} 
      而把[抽象类] 叫成 “待完类”,就是说还没有完的类,不能 new 一个对象,
    有待在他的子类再将它写完。 这样就好理解了。
      

  4.   

    抽象类:将一类具有共同属性和行为的实体,抽象成一个类。如:张三是老师和李四是学生,两个都是人,就可以抽象出一个Person类出来。而张三是老师Teacher类的一个实例(对象),李四是学生Student类的一个实例(对象),Teacher类和Student类都是继承自抽象类Person,但是又各自区别(老师教课,学生听歌)。接口:是为了实现多继承而设计的。当然也可以理解为可扩展,让程序更加灵活而设计的。这两个概念都是面向对象编程的基础,也是经常使用到的,尤其是接口的概念。而且会交叉,配合继承等反复使用。其实接口就可以理解为USB接口,插上去就能用。在软件编程当中,为了使原来的程序能够在原有基础上得以扩展,就可以让类实现这个接口,自然就又多了一个功能。封装、继承、多态,这三点要在面向对象编程实践过程中,反复理解才能深有体会。说的比较乱,希望对楼主有所帮助。
      

  5.   

    另外补充一点,抽象类当然不能实例化,实例化的都是具体的类,这是不是很好理解呢?能new的都是具体的,不能new的都是抽象的。new就是实例化一个具体的对象。