志在指尖
用双手敲打未来

java接口(定义和实现方法)

java接口

Java语言规范中,方法的特征只包括方法的名称、参数的个数和类型,而不包括方法的返回类型、参数的名称、抛出的异常。当Java编译器检查一个方法的重载时,它会根据这些条件确定两个方法是否被重载。但是当Java编译器检查一个方法的替换时,它会进一步检查两个方法(子类型超类型和子类型)的返回类型和抛出的异常是否相同。
接口实现和类继承的规则是不同的。为了数据安全,一个类在继承时只有一个直接父类,即单继承,但一个类可以实现多个接口。接口的双重设计,既维护了类的数据安全,又变相实现了多重继承。
Java接口本身没有任何实现,因为Java接口不涉及表示,只描述公共行为,所以Java接口比Java抽象类更抽象。但是接口不是类,你不能使用new操作符来实例化一个接口。如x=newcompatible(…);//这是错误的。但是可以声明接口变量Comparablex;//这是允许的。
Java接口的方法只能是abstract和public,Java接口不能有构造函数,Java接口可以有public、static和final属性。即接口中的属性可以定义为publicstaticfinalintvalue=5;[1]
接口将方法的特征与方法的实现分开。这种分离体现在接口往往代表一个角色,它包装了与角色相关的操作和属性,而实现接口的类就是扮演角色的actor。一个角色由不同的演员扮演,不同的演员除了扮演一个共同的角色之外不需要任何共同点。

java
java接口定义和实现方法

编辑器告诉你抽象类是从多个类中抽象出来的模板。如果把这个抽象进行得更彻底,就可以提取出一个更特殊的“抽象类”——接口(Interface)。接口是Java中最重要的概念之一。可以理解为一个特殊的类。不同的是接口的成员没有执行体,由全局常量和公共抽象方法组成。
定义接口
Java接口的定义方式与类相同,但接口定义中使用的关键字是interface,接口定义的语法格式如下:
[public]interfaceinterface_name[extendsinterface1_name[,interface2_name,…]]{//接口体,可以包含定义的常量和声明的方法[public][static][final]typeconstant_name=value;//定义常量[public][abstract]returnTypemethod_name(parameter_list);//声明方法}
对上述语法的解释如下:
public表示接口的修饰符。当没有修饰符时,使用默认修饰符。此时接口的访问权限仅限于其所属的包;
interface_name表示接口的名称。接口名称应该遵循与类名称相同的命名约定,也就是说,如果仅从句法的角度来看,接口名称应该只是合法的标识符。如果要遵守Java可读性规范,接口名称应该由多个有意义的单词组成,每个单词的首字母大写,单词之间没有任何分隔符。
extends表示接口的继承关系;
interface1_name表示要继承的接口名称;
constant_name表示变量名,一般为static和final;
returnType表示方法的返回值类型;
parameter_list表示参数列表,接口中的方法没有方法体。
注意:一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。
接口对其声明、变量和方法施加了许多限制。这些限制总结为接口的特性如下:
任何类都允许使用具有公共访问控制器的接口;一个没有指定public的接口,它的访问将被限制在它所属的包中。
方法的声明不需要其他修饰符,接口中声明的方法会隐式声明为public(public)和abstract(abstract)。
Java接口中声明的变量实际上是常量。接口中的变量声明会隐式声明为public、static和final,即常量,所以接口中定义的变量必须进行初始化。
接口没有构造函数,不能被实例化。例如:
publicinterfaceA{publicA(){…}//编译错误,接口不允许定义构造函数}
一个接口不能实现另一个接口,但它可以从多个其他接口继承。子接口可以覆盖父接口的方法和常量。例如:
publicinterfaceStudentInterfaceextendsPeopleInterface{//接口StudentInterface继承PeopleInterfaceintage=25;//常量age覆盖父接口中的age常量voidgetInfo();//方法getInfo()覆盖了父接口中的getInfo()方法}
例如定义一个接口MyInterface,并在接口中声明常量和方法,如下:
publicinterfaceMyInterface{//接口myInterface字符串名称;//无效,变量名必须初始化intage=20;//合法,相当于publicstaticfinalintage=20;无效getInfo();//方法声明,等效于publicabstractvoidgetInfo();}
实现接口
接口的主要目的是由实现类实现。一个类可以实现一个或多个接口,使用extends关键字进行继承,使用implements关键字进行实现。因为一个类可以实现多个接口,这就是Java弥补单继承灵活性不足的地方。实现接口的类的语法如下:
<public>class<class_name>[extendssuperclass_name][implementsinterface1_name[,interface2_name…]]{//body}
对上述语法的解释如下:
public:类的修饰符;
superclass_name:要继承的父类的名称;
interface1_name:要实现的接口名称。
实现接口时需要注意以下几点:
实现接口类似于继承父类,可以获取实现接口中定义的常量和方法。如果一个类需要实现多个接口,分离多个接口

未经允许不得转载:IT技术网站 » java接口(定义和实现方法)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载