接口中成员变量和成员函数介绍
2013-03-30 10:44
197 查看
接口类型的定义类似于类的定义。 接口定义的形式如下: [修饰符] interface 接口名 [extends] [接口列表] { 接口体 } 像类那样,编译好的接口被保存在class 文件中。 1.接口说明 interface 前的修饰符是可选的。当没有修饰符的时候,表示此接口的访问只限于同包的 类。如果使用修饰符,则只能用public 修饰符,表示此接口是公有的,在任何地方都可以引用它,这一点和类是相同的。 接口说明中的extends 关键词和类说明中的extends 一样,用来定义直接的父接口。和类不同,一个接口可以继承多个父接口,当extends 后面有多个父接口时,它们之间用逗号隔开,例如,下面是一个最简单的接口说明: public interface boy extends person, man 2. 接口体就是用大括号括起来的那部分。接口体说明接口的成员,包括常量和抽象方法。 例3.11 接口的定义实例。 interface boy { final int MAX=50; void increment( ); void decrement( ); int currentcount( ); } 像类一样,接口可以有两种成员:成员变量和成员方法。 (1)接口中的成员变量 接口中所有的成员变量都隐含的是public、static、final 的,因此接口中的成员变量都是静态最终变量。在接口中成员变量声明的形式如下: [修饰符] 类型名变量名列表; 例如,在接口中有下面这行代码:“int i=5;”等同于:“public static final int i=5;”。 (2)接口中的方法 接口中说明的方法都是抽象方法,其声明的形式为 [修饰符] 方法返回值类型方法名(参数列表); 由于接口中的方法都是抽象方法,所以方法体仅仅有一个分号“;”(连“{”和“}”都 没有)。修饰符可选,商提醒您它只能是public 和abstract。接口中的所有方法都隐含的是public 和abstract 的,接口的方法不能是带static、final 等其他修饰符的。 3. 接口的实现 接口的声明仅仅给出了抽象方法,而具体地实现接口所定义的方法需要某个类为接口中 的每个抽象方法定义具体的操作。 在类的声明部分,用implements 关键字来声明这个类实现某个接口,一个类可以实现多个接口,在implements 子句中用逗号隔开。 如果实现某接口的类不是abstract 修饰的抽象类,则必须在类的定义部分实现指定接口 的所有抽象方法,即为所有抽象方法定义方法体,而且,方法头部分应该与接口中的定义完全一致,即有完全相同的返回值和参数列表 如果实现某接口的类是abstract 修饰的抽象类,则它可以不实现该接口的所有方法。但是,在这个抽象类的任何一个非抽象的子类中,都必须有它们父类所实现的接口中的所有抽象方法实现的方法体。这些方法体可以来自抽象的父类,也可以来自子类自身。但是不允许存在未被实现的接口方法,这主要体现了非抽象类中不能存在抽象方法的原则。 一个类在实现某接口的抽象方法时,商提醒您必须使用完全相同的方法头。如果所实现的方法与 抽象方法有相同的方法名和不同的参数列表,则只是在重载一个新方法,而不是实现已有的抽象方法。 接口的抽象方法的访问控制符都已被指定为叫public,所以类在实现这些抽象方法时,必须显式地使用public 修饰符,否则将被警告为缩小了接口中定义的方法的访问控制范围。 例3.12 接口实现实例。 interface interCalArea { double PI=3.14159; double cal(double r); } public class CalArea implements interCalArea { public double cal(double r) { return PI*r*r; } public static void main(String[] args) { CalArea CA=new CalArea(); System.out.println("Area="+CA.cal(12.0)); } } 程序运行结果如下: Area=452.38895999999994 程序中定义了一个接口interCalArea,该接口定义了一个常量PI 和方法cal( ),在类CalArea 中实现了cal( )方法,并在该方法中使用PI 计算圆的面积。在main( )方法中创建CalArea 类的实例CA,并调用CA 的cal( )方法计算圆的面积,最终显示出来。 |
相关文章推荐
- 多态的好处和弊端案例(成员变量,成员函数,静态成员函数,接口)会用到instance
- c/c++笔试题——const类型的成员函数内部如何改变成员变量
- 数据结构:(更新中)成员变量、成员函数和实例一般命名和定义方法
- 创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数, 运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要 加入自己的成员变量或成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- JAVAJava中接口里定义的成员变量
- 黑马程序员—声明类Person,包含2个成员变量:name、age。定义函数sayHello(), * 调用时输出:我叫***,今年***岁了。声明类Chinese继承Person。
- C++类对象成员变量与成员函数内存分配问题
- JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】
- static成员函数成员变量
- java之多态调用成员变量,成员函数,静态函数的特点
- 在同一个类中的普通成员函数中调用static 成员变量,linker出错,无法解析的外部命令?
- C++利用类静态变量,实现伪类对象空指针成功访问含有成员变量的成员函数而不崩溃
- C++ Const关键字修饰变量、成员函数!
- 静态变量,函数以及抽象类,接口 知识随记
- Java接口中的成员变量为什么必须声明为public static final?
- 隐藏父类成员变量及super用法、接口
- 从零开始学C++之对象的使用(一):static 成员变量、static 成员函数、类/对象的大小
- 子父类出现后,类成员的特点(变量 、函数)
- 如何访问私有成员变量和函数