第六章接口与实现

本文围绕Java接口展开,介绍了接口的定义,包括声明和体的构成,以及变量和方法规则。阐述了类实现接口、重写方法、接口回调等内容,还提及接口与多态、接口参数。对比了abstract类与接口,并说明了面向接口编程的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.1 接口
interface :
数组:int [ ] a; a=new int[10];
A [ ] a = new A[10]; a[0]=new a( );
使用关键字interface来定义一个接口;接口的定义和类的定义很相似,分为接口声明和接口体,如:
interface Printable { //接口声明
final int MAX =100; //只有常量 等价public static int MAX = 100;
void add (); //只有抽象方法 等价public abstract void add();
float sum(float x,float y);
}
1.接口声明
接口通过使用关键字interface来声明
格式:interface 接口的名字
2.接口体
接口体中包含常量定义和方法定义两部分。接口体中只有进行方法的声明,不许提供方法的实现,所以方法的定义没有方法体且用分号“;”结尾
接口的变量和方法的构成规则:
1.接口中的变量自动都是public、static、final
2.接口中的方法默认为public abstract;接口也产生class文件
3.接口中的方法不能被static和final修饰,因为要重写所有接口中的方法
4.接口中没有构造函数,方法可以抛出异常

6.2 实现接口
1.类实现接口
在java语言中,接口由类来实现以便使用接口中的方法。一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口,如实现多个接口,用逗号隔开接口名
class Dog extends Animal implements Eatable,Sleepable
2.重写接口中的方法
如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法
3.实现接口的类的子类自然也实现了该接口
4.接口也可以被继承,即可以通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public的,子接口将继承父接口中的全部方法和常量

6.3接口回调
和类一样,接口也是java中一种重要数据类型,用接口声明的变量称作接口变量
接口属于引用型变量,接口变量中可以存放实现该接口的类的实例的引用,即存放对象的引用
接口回调:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法

6.4 理解接口
1.接口可以抽象出中重要的行为标准,该行为标准用抽象方法来表示
2.可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为

6.5接口与多态
由接口产生的多态是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态

6.6 接口参数
如果一个方法的参数是接口类型,就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现分接口方法
void f(Com com) {
com.computer( );
}
f(new A ( ));

6.7 abstract类与接口的比较
接口和abstract类的比较如下:
1.abstract类和接口都可以有abstract方法
2.接口中只可以有常量,不能有变量;而abstract类中既可以有常量又可以有变量
3.abstract类中也可以有非abstract方法,接口不可以

6.8 面向接口编程
抽象类将其抽象方法的实现交给其子类,而接口将其抽象方法的实现交给实现该接口的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值