抽象类(Abstract Class):
- 定义:
- 抽象类是不能被实例化的类,它可以包含抽象方法和非抽象方法。
- 抽象类用
abstract
关键字进行声明,可以拥有成员变量、非抽象方法和抽象方法。
- 特点:
- 抽象类可以包含非抽象方法的实现,子类
可以直接继承并使用这些方法。
- 包含抽象方法的类必须被声明为抽象类,子类必须实现父类的抽象方法。
- 抽象类可以包含构造方法,但不能用于实例化对象。
- 抽象类可以包含非抽象方法的实现,子类
抽象方法(Abstract Method):
定义:
抽象方法是只声明而不实现的方法,必须在抽象类或接口中声明。
抽象方法用 abstract 关键字进行声明,没有方法体。
特点:
抽象方法必须被子类实现,否则子类也必须声明为抽象类。
抽象方法不能在普通类中使用,只能在抽象类或接口中定义。
接口(Interface):
定义:
接口是一种抽象类型,不能包含成员变量,只能包含常量和抽象方法。
接口用 interface 关键字进行声明,可以被类实现(implements)。
特点:
类可以实现多个接口,但只能继承一个类。
接口中的方法默认为抽象方法,可以省略 abstract 关键字。
接口中的方法可以有默认实现(Java 8 开始支持)。