接口类型的定义类似于类的定义。

接口定义的形式如下:
[修饰符] 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( )方法计算圆的面积,最终显示出来。

接口中成员变量和成员函数介绍相关推荐

  1. C++57个入门知识点_17 类的访问权限及C语言模拟类的封装(类的私有权限突破方法:编译期进行权限检查,运行期通过指针修改类的私有成员变量;利用函数指针对结构体中成员变量进行修改;CPU大小尾排列)

    接上篇:C++57个入门知识点_16 类的标准写法(类名.成员变量.成员函数及对象命名规则:成员变量一般为私有,成员函数为公有并暴露给外部使用成员变量:防止类过大,声明写在.h,实现写在.cpp,调用 ...

  2. C++类的成员变量和成员函数的介绍

    类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型.类这种数据类型是一个包含成员变量和成员函数的集合. 类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存.但 ...

  3. 成员变量和成员函数分开存储

    首先来说结论: 1.在C++中,类内的成员变量和成员函数分开存储 2.只有非静态成员变量才属于类的对象上 空类(类中上面对象都没没有)占用内存大小为:1 #include <iostream&g ...

  4. c++学习之const成员变量与成员函数

    c++学习之const成员变量与成员函数 常类型是指用类型修饰符const说明的类型,常类型的变量或者对象的值是不能被更新的.因此,定义或说明常类型时必须初始化. 如果在一个类声明常数据成员,那么任何 ...

  5. C++ const成员变量和成员函数

    const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字.初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表. co ...

  6. 类和对象- C++对象模型和this指针- 成员变量和成员函数分开存储

    成员变量和成员函数分开存储 在C++中,类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用内存空间 class Person {};void test01() {Pers ...

  7. C++学习笔记(十)成员变量和成员函数分开存储、this指针、空指针访问成员函数、const修饰成员函数、友元

    1.成员变量和成员函数分开存储 //1.在C++中,类内的成员变量和成员函数分开存储 //2.只有非静态成员变量才属于类的对象上 //空对象占用内存空间为:1 //C++编译器会给每个空对象也分配一个 ...

  8. java中静态变量和成员变量的区别

    java中静态变量和成员变量的区别 1.静态变量. 由static修饰的变量称为静态变量,其实质上就是一个全局变量.如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰:没有被静态修饰的内容,其 ...

  9. Java 多态中成员变量与成员属性的特点【复习】

    package firstchapter;/*** 多态中成员变量与成员属性的特点*/ public class polymorphic {public static void main(String ...

  10. C++成员变量和成员函数分开存储

    C++t成员变量和成员函数分开存储 类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 class Person ...

最新文章

  1. UpdateDate()函数的作用
  2. 《NoSQL For Mere Mortals》书评与作者问答录
  3. android app系统的测试_计算机毕设项目003之基于Android系统的App点餐外送系统
  4. 201671010103 2016-2017-2 《Java程序设计》第十二周学习心得
  5. 星际战甲堕落轰击者结合目标_星际战甲-任务指南
  6. SAP CRM Survey调查问卷的模型设计原理解析
  7. C学习杂记(二)笔试题:不使用任何中间变量如何将a、b的值进行交换
  8. linux shell 获取本机ip 写入文件
  9. c语言设计四路彩灯显示系统,四路彩灯控制器设计方案.doc
  10. jQuery+css3实现新年贺卡
  11. linux mysql2013_linux下MySQL安装
  12. luogu P3810 【模板】三维偏序(陌上花开)
  13. Atitit.jsou html转换纯文本 java c# php
  14. vs2015 professional 密钥
  15. php中ob函数的用法
  16. elasticsearch,spring boot,mybatis项目小结
  17. 如何一下清空微信好友_微信清理好友方法|微信如何正确清理已删除你的微信好友 微信清理好友方法介绍_东坡下载...
  18. 5年 Android 面试题
  19. U盘中毒文件都不见了
  20. 如何对iOS设备进行性能测试

热门文章

  1. php5.3 发送邮件phpemail的使用 (适用php5.3)
  2. Linux 文件系统结构
  3. Safeboxie电脑版多开助手多开操作方法:
  4. 【Ma蚁】蚂蚁上市,打新攻略,你可能拥有的
  5. srsLTE 源码分析 UE_05 PLMN选择之小区选择
  6. Hive表解锁 Locks on the underlying objects cannot be acquired. retry after some time
  7. js 获取百度搜索关键词的代码
  8. duilib底层机制剖析:窗体类与窗体句柄的关联
  9. warning: require(./admin.php),WordPress提示require_once() Failed opening required的解决方法
  10. 周末阅读之《刻意练习》,很多“天才”不过是找对了方法