概念我想不用说了吧,直接比较区别:
1.方法
抽象类:可以有抽象方法,也可以有非抽象方法;甚至没有抽象方法也行,但那样只是为了不让这个类被实例化。
接口:接口中的方法必须都是抽象的
例:
- public abstract class Demo
- {
- public abstract show();
-
- public void run()
- {
- System.out.println("跑起来");
- }
- }
- public interface Demo
- {
- public abstract show();
- public abstract run();
- }
复制代码
2.成员变量
抽象类:可以有普通成员变量
接口:没有普通成员变量,接口中的成员变量实际上是被final的常量
3.构造方法
抽象类:可以有构造方法
接口:不可以有构造方法--因为接口中方法都是抽象的,构造方法需要方法体,即使是空方法体。
4.修饰符
抽象类:抽象类中的抽象方法的访问类型可以是public,protected
接口:接口中的抽象方法默认为public abstract。
5.继承和实现
一个类只能集成一个抽象类,但可以实现多个接口
|