20175306 2018-2019-2 《Java程序设计》第5周学习总结
教材学习内容总结
第六章:接口与实现
6.1接口:使用关键字interface定义接口
· 接口声明:interface 接口名
· 接口体:接口体中包含常量(没有变量)(可省略public final static)和抽象方法(访问权限一定是public)(可省略public abstract)
6.2实现接口:
·类实现接口:用关键字implements声明该类实现一个或多个接口
·重写接口中的方法:若非抽象类实现该接口,则必须重写所有方法,并且加public(给出具体行为);若抽象类实现该接口,可直接拥有其方法
·注:若父类实现某个接口,则子类自然实现该接口
6.3接口的UML图:注意用虚线,由类指向接口
·名字层:名字是斜体,用<
·常量层:格式是“常量名字:类型”
·方法层:(操作层)格式是“方法名字(参数列表):类型”
6.4接口回调:接口也是一种数据类型,声明的变量称为接口变量。将实现该接口的类的对象的引用赋给该接口声明的接口变量,则接口变量就可以调用被类实现的接口方法
*6.5理解接口:理解的关键点是
·接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示
·可以把实现该接口的类的对象的引用赋给该接口声明的接口变量,则接口变量就可以调用被类实现的接口方法
*6.6接口与多态:接口变量在回调发方法时可能可能具有多种形态
·注:继承与多态是指父类有多个子类,而接口的多态是指有多个类
6.7接口参数:将实现该接口的类的对象的引用传给该接口参数
6.8abstract类与接口的比较:
·均可以有abstract方法
·接口中只能有常量,不能有变量
·abstract类中可以有非abstract方法,接口不可以
·如果某个问题需要继承解决,不仅需要重写父类的abstract方法,还需要继承一些变量等,则考虑abstract类
6.9面向接口编程:利用接口也可以体现程序设计的“开-闭原则”,即对扩展开放,对修改关闭。
教材学习中的问题和解决过程
问题一:
解决过程: 若非抽象类实现该接口,则必须重写所有方法,并且加public(给出具体行为);若抽象类实现该接口,可直接拥有其方法
Markdown的基本使用
参考链接:>https://www.jianshu.com/p/191d1e21f7ed
代码托管
码云链接:
本周代码详情:
本周错题总结:
1.下列关于实现接口的说法,正确的是(A B C)
A.一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口
B.如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法
C.类重写接口方法时,方法的访问权限一定要明显地用public修饰
D.子类既可以重写接口中的方法,也可以直接拥有接口中的方法
2.将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?
interface Com {
int M = 200;
int f();
}
class ImpCom implements Com {
【代码】
}
A.public int f(){return 100+M;}
B.int f(){return 100;}
C.public double f(){return 2.6;}
D.public abstract int f();
正确答案:B。但是个人感觉应该是A
本周学习心得:
本周的学习相对来说比较轻松,因为本周的内容比较简单,接口和上周的一些内容也比较相似,而且本周也吸取了上周的经验,提前进行学习,完成的也比较早,所以感觉本周的学习效率还是很高的。也很高兴在学习过程中,问题越来越少,有的时候甚至还可以帮助别人解决一些问题,很高兴。本周还有一个四则运算的任务,希望也可以顺利完成!!!