教材学习总结
(1)接口(接口声明与接口体)
使用关键字interface来定义一个接口
声明:
interface 接口名字{
final int max = 100;
void add();
float sum(float x,float y);
}
一个类可实现多个接口,接口体保护常量的声明(没有变量)和抽象方法,接口体中只有抽象方法,没有普通方法,接口体的访问权限一定是public,是static常量,所有抽象方法的访问权限一定是public,允许省略public abstract修饰符
实现接口
关键字 implements
接口由类来实现,使用关键字实现声明该类的一个或多个接口
class A implements Printable,addable
或者
class Dpg extends Animal implements Eatable,sleepable
当一个非抽象类实现了某个接口时,这个类必须重写接口中的全部方法,并且访问权限必须用public修饰;
public class China implements Computable{ //China类实现了Computable接口
int number;
public int f(int x){ //不要忘了public关键字
..........
zhang.number=32+Computable.MAX //用接口名访问接口常量
抽象类既可以重写接口中的方法,也可以直接拥有接口中的方法
接口回调
接口属于引用型变量,接口变量中可以存放实现该接口的类的实例引用,即存放对象的引用;在接口声明接口变量又没有存放实现该接口的类的实例时,称为空接口。
接口回调:可以把实现某一接口的创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法;接口回调与上转型对象调用子类重写的方法类似
理解接口
接口更注重行为一致性
(1)接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示;
(2)可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类变量实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为。
接口与多态
由接口产生的多态指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态。
abstract类与接口的比较
(1)abstract类和接口都可以有抽象方法
(2)接口中只可以有常量,不能有变量;而抽象类中既可以有常量,也可以有变量
(3)abstract类中可以有非抽象方法,接口不可以
面向接口编程
可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成