抽象方法
用关键字abstract修饰的方法称为抽象方法
对于抽象方法,只允许声明,不允许实现,而且不允许同时使用final和abstract修饰一个方法
抽象方法所在的类必为抽象类或者接口
抽象类(abstract class)
用关键字abstract修饰的类称为抽象类
抽象类中可以有abstract方法,也可以有非abstract方法
abstract类不能被实例化,也不能使用new运算符创建该类的对象
接口(interface)
接口通过使用关键字interface来声明
接口体中只有抽象方法,没有普通方法
接口体中所有常量的访问权限一定都是public(允许省略public、final修饰符)
所有方法的访问权限一定都是public(允许省略public、abstract修饰符)
类重写的接口方法以及接口中的常量可以被类的对象调用,而且常量也可以用类名或接口名直接调用
抽象类与接口的区别:
abstract类中可以用具体(非abstract)方法,但接口不能有具体方法;
接口中只可以有常量,不能有变量,而abstract类中可以有常量和变量;
abstract类中的方法可以使public、protected、private或者,接口的方法都是public;
abstract类可以定义构造函数,接口不能定义构造函数;