抽象:
1.除了不能实例化,其他和类没区别;
2.如果有抽象方法,必须申明抽象类;
3.抽象类也可以不需要抽象方法;
4.抽象方法只做声明,不能有protected,不作实现,但继承他的具体类必须重写实现抽象方法;
静态:
1.其存入静态存储区,在程序执行区间里一直存在;是类的所有,所以不能实例化;
2.静态类只能包含静态字段,方法,属性和const常量;
3.静态构造必须无参,无访问修饰,无重载,只在第一次使用静态成员调用一次;
4.用类名调用,不用初始化;
5.是密封的(sealed),不能修改,不能继承;
6.由静态方法可以写出单例设计模式,默认构造和实例初始化须是privated,实例和方法是static;
接口:
1.和抽象类类似,都不能直接实例化。但抽象是相似类的公有的特性的抽象集合;而接口是不同类的具有的相同功能;
2.接口帮助C#实现了多继承的功能;
3.一个类继承了基类和接口,接口必须放在后面;
4.其成员默认为public,都是抽象的,不能添加修饰符,只有申明;
5.不能有构造函数,析构函数,静态成员和常量;