抽象类&接口
抽象类
关键字:abstract
修饰范围:可以用来修饰类、方法
1、修饰类:抽象类
①不可被实例化
②抽象类有构造器 (凡是类都有构造器)
③抽象方法所在的类,一定是抽象类。
④抽象类中可以没有抽象方法。
2、修饰方法
①格式:没有方法体,包括{}.如:public abstract void eat();
②抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。
③若子类继承抽象类,并重写了所有的抽象方法,则此类是一个"实体类",即可以实例化
④若子类继承抽象类,没有重写所有的抽象方法,意味着此类中仍有抽象方法,则此类必须声明为抽象的!
接口
关键字:interface
接口(interface) 是与类并行的一个概念
1.接口可以看做是一个特殊的抽象类。是常量与抽象方法的一个集合,不能包含变量、一般的方法。
2.接口是没有构造器的。
3.接口定义的就是一种功能。此功能可以被类所实现(implements)。
比如:class CC extends DD implements AA
4.实现接口的类,必须要重写其中的所有的抽象方法,方可实例化。若没有重写所有的抽象方法,则此类仍为一个抽象类
5.类可以实现多个接口。----java 中的类的继承是单继承的
6.接口与接口之间也是继承的关系,而且可以实现多继承
PS:接口中的方法默认修饰符为public,接口中的变量默认修饰符为public static final,即默认为常量
注意:
关于抽象类:JDK1.8之前,抽象类的方法默认修饰符为protected,JDK1.8之后,抽象类的方法默认修饰符为default
关于接口:JDK1.8之前,接口中的方法必须是public,JDK1.8之后接口中的方法可以是public,也可以是default
zwy