成员变量定义
- Java接口:接口中的成员变量默认是
public static final
的,即全局常量。必须在声明时就初始化,例如:
public interface MyInterface {
int VALUE = 10;
}
- 抽象类:抽象类可以有各种类型的成员变量,包括实例变量和静态变量。实例变量在对象创建时初始化,静态变量在类加载时初始化,例如:
public abstract class MyAbstractClass {
private int instanceVariable;
protected static String staticVariable;
}
修饰符
- Java接口:成员变量只能用
public static final
修饰,不能使用其他修饰符。
- 抽象类:成员变量可以使用各种访问修饰符,如
private
、protected
、public
,也可以不加修饰符(默认包访问权限),还可以用static
、final
等修饰。
使用场景
- Java接口:
- 用于实现多继承。一个类可以实现多个接口,从而获得多个接口的功能,例如一个类既想实现
Serializable
接口支持序列化,又想实现Comparable
接口支持比较功能。
- 定义行为规范。多个不相关的类可以实现同一个接口,以统一的方式对外提供某些行为,比如不同类型的支付类都实现
Payment
接口,提供支付的统一行为。
- 抽象类:
- 当多个类有共同的属性和行为,但部分行为的实现细节不同时,可以将这些共同部分抽取到抽象类中。例如,
Shape
抽象类有计算面积的抽象方法,Circle
和Rectangle
等具体形状类继承Shape
并实现计算面积的方法。
- 为子类提供一个通用的框架。子类可以基于抽象类进行扩展和定制,如
HttpServlet
是一个抽象类,HttpServletRequest
和HttpServletResponse
等具体Servlet类继承它来处理HTTP请求和响应。