背景:在做两个服务器应用通信时,使用interface做接口。但abstract 用的比较少。但看起来用法都差不多,实际是否差不多,今天做个整理。
从使用的情况来看:
一、interface与abstract的相同点:
1、都是没有具体实现,需要继承类进行实现;
2、无法直接调用;
3、interface算是抽象类的特例;
二、interface和abstract的区别:
1、interface无构造方法,abstract类可以有构造方法;
2、abstract类中可以有普通成员变量,interface 只有抽象方法;
3、abstract类的访问类型可以是public或是protected,但interface默认的访问类型就是public abstract
4、一个类可以实现多个interface,但只能继承一个abstract类;
5,interface主要是应用在模块通信上,abstract类主要是用在代码的重写;
还有其他新的内容再补充。