java接口的成员变量的修饰符

前言:c++学的java都忘记了不少

interface(接口)可将其想象为一个"纯"抽象类。它允许创建者规定一个类的基本形式:方法名、自变量列表以及返回类型,但不实现方法主体

接口也可包含基本数据类型的数据成员,但它们都默认为publicstaticfinal

接口中定义的方法默认为publicabstract

为什么Java接口中的成员变量默认为(public、static、final)、成员方法为(public、abstract)呢?

原因:接口是一种高度抽象的模版,接口中的成员变量是模版的一部分,其接口的实现类必须共有这些成员变量,所以成员变量的修饰符默认为public、static、final。static使得实现这个接口的类,可以直接使用这个变量。

如果是非静态变量,那么接口的多个实现类可能出现变量名重名的现象。

final表示被修饰的变量为常数,不可以修改。一个既是static又是final的字段表示只占据一段不能改变的存储空间。如果是非final变量,那么接口的实现类可以修改变量的值,这与抽象类没有区别了。

由于接口起到标准化和规范化的作用,所以其成员变量默认修饰符为static、final。

原文地址:https://www.cnblogs.com/zpchcbd/p/11877320.html