接口与抽象类的区别
抽象类和接口的区别:
从组成部分来看:
-
接口:
- 接口的属性都是常量,public static final,final修饰的类没有子类,修饰的方法不能被重写,修饰的属性值不能被更改,常量名全部要大写
String NAME=”admin“;
-
jdk1.8之前的接口中方法都是抽象方法 public abstract
1.8之后的方法还有普通方法和静态方法
-
抽象类:
- 普通类的组成部分
- 抽象方法(可有可无)
从语法上来看:
抽象类:public abstract class 抽象类名称{}
接口:public interface 接口名称{}
从使用场景上
抽象类:属性
接口:扩展程序---->不同实现
共同点
创建出来的对象都是匿名内部类