付费节点推荐
免费节点
节点使用教程
[t]6.1 接口[/t]
1.接口声明
接口定义和类的定义相似,使用关键字interface声明一个接口。
interface Printable{
final int MAX=100;
float sum(float x,float y);
}
2.接口体
(1)接口体包含常量的声明(没有变量)和抽象方法(不能有普通方法)两部分。
(2)接口体中所有的常量访问权限都是public,而且是static常量(允许省略public,final和static修饰符)
(3)所有的抽象方法的访问权限一定是public(允许省略public abstract修饰符)
interface Printable{
public final static int MAX=100;
public abstract void add();
public abstract float sum(float x,float y);
}
[t]6.2实现接口[/t]
1.类实现接口
接口由类实现以便使用接口中的方法,在类声明中使用关键字implements声明该类实现一个或者多个接口。如果实现多个接口,用逗号隔开接口名。
class A implements Printable,Addable{
}
再比如Animal的Dog子类实现Eatable和Sleepable接口
class Dog extends Animal implements Eatable,Sleepable
2. 重写接口中的方法
1)如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有抽象方法。
2)如果一个类声明实现了一个接口,但没有重写接口中的所有方法,那么这个类必须是抽象方法,也就是说抽象类既可以重写接口中的方法也可以直接拥有接口中的方法。
3.接口的细节说明
1)可以直接使用接口名访问接口中的中常量,如果一个类实现了接口,那么该类可以直接在类体中使用该接口中的常量。
2)定义接口时,如果关键字interface前面加上public关键字就称这样的接口是一个public接口。public接口可以被任何一个类实现。如果一个类不加public修饰,就称作友好接口,友好接口可以被与该类口在同一包中的类实现。
3)如果父类实现了某个接口,那么子类也就自然实现了该接口,子类不必再显式的使用implements声明实现这个接口。
4)接口也可以被继承,即可以通过关键字extends声明一个接口是另一个接口的子接口,由于接口中的方法和常量都是public的,子接口将继承父类中的全部方法和常量。
[t]6.5 接口回调[/t]
接口回调:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量。
[t]接口与多态[/t]
使用接口回调后,该接口变量就可以回调类重写的接口方法,由接口产生的多态就是指不同的类在实现同一接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就有多种形态。
[t]6.7接口参数[/t]
如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
[t]abstract类与接口的比较[/t]
abstract类:(常量、变量)(abstract方法、非astract方法)
接口: (常量)(abstract方法)
在设计程序时,应当根据具体的分析来确定是使用抽象类还是接口。abstract类除了提供重要的需要子类重写的abstract方法外,也提供了子类可以继承的变量和非abstract方法。如果某个问题需要使用继承才能更好地解决,比如,子类除了需要重写父类的abstract方法,还需要从父类继承一些变量或继承一些重要的非abstract方法,就可以考虑用abstract类。如果某个问题不需要继承,只是需要若干个类给出某些重要的abstract方法的实现细节,就可以考虑使用接口。
未经允许不得转载:Bcoder资源网 » 【java基础知识】第6章:接口与实现
评论前必须登录!
登陆 注册