201711671233《Java程序设计》第6周学习总结
一、教程学习内容总结
这周主要学习了接口相关知识,接口与抽象类的比较。
(一)接口
声明接口
用interface定义接口。接口是用来实现多重继承,作为行为标准的。接口是类和外界发生交互的操作。
接口声明:interface 接口名;
接口体包括常量(无变量)声明和抽象方法(无构造、普通方法)。接口体中所有的常量的访问权限是public、static(可省略public,static,final),抽象方法一定是public(可省略public abstract)。接口中的常量必须指定初值。
实现接口
在类声明中使用implements声明该类实现一个或多个接口。多个接口用逗号隔开。如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。类在重写接口方法时不仅要去掉abstract,给出方法体,还要明显使用public来修饰。
如果一个类声明实现一个接口,但没有重写接口的所有方法,那么这个类必须是抽象类。抽象类可以重写接口中的方法,也可以直接拥有接口中的方法。
定义接口时,在interface前加public,则是public接口,可以被任何一个类实现。若不加public,则是友好接口,可以被同一个包中的类实现。
import可以引入包中的类,也可以引入包中的接口。
接口回调
用接口声明的变量称作接口变量。接口变量中可以存放实现该接口的类的实例的引用,即存放对象的引用。
接口回调指的是当接口变量中存放了实现接口的类的对象的引用后,接口变量就可以调用类实现的接口方法。
注:接口无法调用类中的其他的非接口方法。
接口参数
如果一个方法的参数是接口类型,可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
接口的多态
由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式。
(二)abstract类与接口的比较
抽象类和接口都可以有抽象方法。
抽象类中可以有变量和常量,而接口只能有常量。
抽象类中可以有非抽象方法,接口不可以。
二、教程学习中的问题和解决过程
一开始没有理解接口回调是什么意思,然后看着书上的代码,慢慢理解,然后就明白了。
三、学习进度条
| 代码行数 (新增/累计) | 博客量 (新增/累计) | 学习时间 (新增/累计) |
目标 | 2500行 | 10篇 | 200小时 |
第一周 | 30 | 1 | 10 |
第二周 | 30/60 | 1/2 | 10/20 |
第三周 | 30/90 | 1/3 | 10/30 |
第四周 | 30/120 | 1/4 | 10/40 |
第五周 | 30/150 | 1/5 | 10/50 |
第六周 | 30/180 | 1/6 | 10/60 |
四、参考资料
Java2实用教程(第5版)