1. 一个类中的方法如果只有声明没有实现,则称为抽象方法,必须用abstract修饰之;一个有抽象方法的类称为抽象类,也必须用abstract修饰之,但抽象类可以没有抽象方法;抽象类不能被创建:
// 抽象类 abstract class A { // 抽象方法 abstract public void proc(); } // 没有抽象方法的抽象类 abstract class B { public void proc(){ } } public class Main { public static void main(String[] args) { // 不能创建抽象类,下面两句编译错误 A a = new A(); B b = new B(); } }
2. 一个继承自抽象类的子类,如果没有覆盖抽象基类的所有方法,它也是抽象类,必须用abstract修饰之:
// 抽象类 abstract class A { // 抽象方法 abstract public void proc(); } abstract class B extends A { }
3. 接口中的方法都是抽象方法,只能有public或默认修饰符,不能有private或protected修饰符。
4. 接口可以包含字段,这些字段都被隐式声明为static final,即接口中的字段是可以认为是常量。