1.从设计层面来说,抽象是对类的抽象,是一种模板设计 ,接口是行为的抽象,是一种行为的规范
接口 interface | 抽象类 |
接口中所有方法都是抽象的 | 抽象类中可以有抽象方法和普通方法 |
一个类可以实现多个接口 | 一个类只能继承一个抽象类 |
接口中成员变量默认public static final类型的(都可以 省略),必须被显示 初始化,即接口中的成员变量为常量(大写) int CONST=1;//合法,CONST默认为public static final | 抽象类可以包含非final变量 |
接口中成员函数默认public abstract类型 void method();//合法,method()默认为public abstract public abstract void method2();//method2()显示声明public abstract类型 | 抽象类成员函数可以private,protected,public |
Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的 成员方法
| |
接口绝对抽象,不可以被实例化 | 抽象类也不可以实例化 |
没有构造器 | 可以 有构造器 |
子类必须实现所有接口函数 | 可以有main方法 |
可以有main方法;可以new一个接口,需要在方法体中实现所有接口函数 | 不可以new一个抽象类 |