在interface里面的变量都是public static final 的。所以你可以这样写:
public static final int i=10;
或则
int i=10;(可以省略掉一部分)
注意在声明的时候要给变量赋予初值
解释:
首先你要弄清接口的含义.接口就是提供一种统一的’协议’,而接口中的属性也属于’协议’中的成员.它们是公共的,静态的,最终的常量.相当于全局常量.
抽象类是不’完全’的类,相当于是接口和具体类的一个中间层.即满足接口的抽象,也满足具体的实现.
如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口A中有一个public访问权限的静态变量a。按照java的语义,我们可以不通过实现接口的对象来访问变量a,通过A.a = xxx;就可以改变接口中的变量a的值了。正如抽象类中是可以这样做的,那么实现接口A的所有对象也都会自动拥有这一改变后的a的值了,也就是说一个地方改变了a,所有这些对象中a的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么呢?所以接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。
通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)开放,接口是对开闭原则的一种体现。
分享到:
相关推荐
如书所言:(1)java不支持多重继承,也就是说子类至多只能有一个父类 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法 (3)子类中定义的成员变量和父类中定义的成员变量相同时,...
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的...
⑥抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static 类型,并且默认为 public static 类型。 ⑦一个类可以实现多个接口,但只能继承一个...
instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 ...
1. 接口中的属性都是全局静态常量,接口中的方法都是全局抽象方法,接口中没有构造方法。 2. 类只能继承一个父类,当...接口表中不能包含常量、变量、构造方法。和任何静态成员。定义接口时显式指定任何修饰符是非法的
(2) 接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。 (3) 如果使用public来修饰接口,则接口必须与文件名相同。 8、 多重继承 (1) 一个类继承了一个类和接口,那么必须将类写在前面,接口...
接口的相关实验以及简单应用 掌握接口的定义和实现接口的方法 以及抽象类的使用
(2)Transportation.java 类中需要定义 交通工具编号 number、类型 model、运货负责人 admin 三个成员变量,用于存储交通工具的编号、类型和 负责人信息。 (3)定义交通工具抽象类的无参构造和给 3 个成员变量...
基本包含《计算方法》中的所有试验代码,这是本人在做实验时实现了的,通过了老师的检查。本人是采用java的Fram框架实现的,可以提供学习参考......
定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。
定义接口DiagArea,其中包含方法double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,...
1.方法定义和常量值的集合是(B) (A).单元 (B).接口 (C).成员 (D).变量 2.泛型使用中的规则和限制是(D) (A).泛类参数只能是类类型不能是简单类型 (B).同一种泛型可以对应多个版本 (C).泛型的类型参数可以有多...
定义一个Book类,在该类定义中包括: 类与对象实现书类的简单操作 (1)数据成员:bookname(书名)、price(价格)、number(存书数量)。 (2)成员函数:display()显示图书的情况;borrow()将存书数量减1,并显示当前存书量...
在类中定义的变量叫做成员变量。理解:属性。 (3)成员方法 在类中定义的方法叫做成员方法。理解:功能。 (4)构造方法 方法名和类同名、没有返回值也没有void关键字。 如果一个构造方法都没有、系统默认提供一个...
对象的使用包括引用对象的成员变量和方法,通过运算符·可以实现对变量的访问和方法的调 用,变量和方法可以通过设定一定的访问权限(见下面的例子)来允许或禁止其它对象对它的 访问。 我们先定义一个类 Point。 例子...
(2)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问? A)private B)无修饰符 C)public D)protected (3)给出下列代码,如何使成员变量m 被方法fun()直接访问? class Test { private ...
4.2.1 final成员变量;4.2.1 final成员变量;4.2.2 final局部变量;4.2.2 final局部变量;4.2.3 final方法;4.2.4 final类;4.2.5 学生实践练习;4.2.5 学生实践练习;4.3 接口;4.3 接口;4.3.1 接口的定义;4.3.2 接口的实现;...
定义一个球类Ball,包含一个私有成员变量——半径(double r),两个公有成员方法:设定半径方法(void setR(double x))、得到半径值方法(double getR())。 定义一个台球类Billiards,继承Ball类,包含一个私有成员...
实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主方法里使用测试该类。...