接口和抽象类的概念,区别
1.抽象类用abstract修饰
1- 抽象类属于类类型,有抽象方法的类称为抽象类
2- 抽象方法只有方法声明(签名),没有方法体的方法,用abstract进行声明
3- 抽象类不能实例化,没有足够的信息支持实例化;(可能存在抽象方法,如果可实例化,将可能存在调用未编写方法体的抽象方法)
4- 抽象类可以没有抽象方法
5- 抽象类不能用final修饰
6- 抽象类可以写构造方法
7- 子类继承抽象类,必须重写抽象类的抽象方法;若未重写抽象方法,子类也应当定义为抽象类
2.接口:
1- 接口是引用类型
2- 接口使用interface(接口)声明
3- 接口中抽象方法默认修饰符有public abstract
4- 接口中常量默认修饰符有public static final,必须显式初始化
5- 接口不能实例化
6- 接口可以继承(extends)接口,可以多继承
7- 接口不能实现(implements)接口
8- 抽象类或类可以实现(implements)接口,可以实现多个接口
3.两者的异同
1.接口只能包含抽象方法,抽象类可以包含普通方法。
2.接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。
3.接口不包含构造方法,抽象类里可以包含构造方法。
4.java接口和抽象类一样不能创建自己的对象。