201711671118《Java程序设计》第六章总结

6.1接口

①使用关键字interface来定义一个接口。接口的定义与类的定义很相似:包含接口声明和接口体。通过import语句可以引入包中的接口。

②接口体:接口体中包含常量的声明和抽象方法两个部分。接口题没有变量,没有普通方法,只有常量和抽象方法。

③常量:访问权限必须为public,而且是static常量。如public static final int MAX=100;

其中public、final和static修饰符可以省略,即该声明等价于int MAX=100

④抽象方法:访问权限必须为public。如public abstract void add();其中public、abstract可以省略,等价于void add();

6.2 实现接口

①使用关键字implements声明该类实现一个或多个接口。如class A implements B。

②如果一个非抽象类实现某个接口,那么这个类必须重写这个接口的所有方法,重写的方法去掉abstract,并且一定为public的(重写不能降低访问权限)。

③如果一个类声明实现了一个接口,但没有重写接口中的所有方法,那么这个类必须是抽象类。

④程序可以用接口名访问接口的常量,但是如果一个类实现了接口,那么该类可以直接在类体中使用接口中的常量。

⑤如果一个类不加public修饰,就称为友好接口,友好接口可以被与接口同一个包中的类实现。

⑥如果父类实现了某个接口,那么子类也就自然实现了该接口,子类不必再显式地使用implements声明实现该接口。

⑦接口可以被继承,即可以通过关键词extends声明一个接口是另一个接口的子接口,由于接口中的方法和常量都是public的,子接口将继承父接口的全部方法和常量。

6.4接口回调

①用接口声明的变量称为引用型变量,接口属于引用型变量,接口变量可以存放实现该接口的类的实例的引用,即存放对象的引用。

②接口回调是指:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。实际上,当接口变量调用被类实现的接口方法时,就是通知相应的对象调用这个方法。

③接口无法调用类中的其他非接口方法。

④接口参数:如果一个方法的参数是接口类型,就可以将任何实现该接口的类的实例的引用赋值给该接口参数,那么接口参数就可以回调类实现的接口方法。

6.8 abstract类与接口的比较

①接口中可以有常量,不能有变量,而abstract类中可以有常量,也可以有变量。

②abstract类也可以有非abstract方法,接口不可以。

猜你喜欢

转载自blog.csdn.net/rumple49/article/details/83785473