学号 2016-2017-2 《Java程序设计》第X周学习总结
教材学习内容总结
1.接口 (1)使用关键字interface来定义一个接口,接口分为接口声明和接口体,例如
interface Printable { final int MAX=100; void add(); float sum(float x,float y); }; (2)接口声明,格式如下 ```interface 接口的名字``` (3)接口体包含常量的声明和抽象方法,没有普通方法,而且接口体所有的常量的访问权限一定都是public,而且是static常量。
- 2.实现接口
(1)类实现接口 例如A类实现Printable和Addable接口
class A implements Printable,Addable
例如Animal的Dog子类实现Eatable和Sleepable接口class Dog extends Animal implements Eatable,Sleepable
- 3.接口回调 (1)接口属于应用型变量,接口变量中可以存放实现该接口的类的实例的应用,即存放对象的引用 (2)接口回调表示可以把视线某一接口的类创建的对象的引用赋值给该类接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法
- 4.理解接口 (1)接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示 (2)可以把实现接口的的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法
- 5.接口与多态 (1)由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态
- 6.接口参数 如果一个方法的参数是接口类型,就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么该接口参数就可以回调类实现的接口方法
- 7.abstract类与接口的比较
(1) absrect类和接口都可以有abstract方法
(2)接口可以有常量,不能有变量,而abstract不可以有变量,而abstract类中既可以有常量,也可以有变量
(3)abstract类中也可以有非abstract方法,接口不可以
教材学习中的问题和解决过程
- 问题1:接口中为啥只有方法名称而没有方法体
- 问题1解决方案:接口,是调用者与被调用者通信方式,是某种行为的表现。接口可以相互继承,也可以继承多个接口。 但是类是不允许继承多个的。所以在某种情况下你需要某个特定类表现出几种行为能力时,你可以分别抽象出几种接口(能力),然后在调用时声明需要的接口,这样这个类可以体现多种能力。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 下列说法错误的是 正确答案: A D A .继承的成员变量或方法的访问权限可以由子类重新定义。 B .若子类和父类不在同一包,子类只继承父类中的protected和public访问权限的方法作为子类的方法。 C .继承关系的UML类图用一个实线连接两个类,起始端是子类,重点端是父类,终点端使用空心三角形表示实线的结束。 D .如果在类本身创建一个对象,则该对象不可以通过“.”运算符访问继承的protected变量。 A项:继承后访问权限保持不变。
- 下列关于abstract关键字的说法,正确的是
A .可以使用static修饰abstract方法。
B .非abstract类中不可以有abstract方法。
C .不能使用new创建abstract类的对象。
D .不允许使用final和abstract同时修饰一个方法.
E .可以使用public abstract void eat(){};来声明抽象方法eat()。
F .抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。
正确答案: B C D F
A项:abstract关键字不能应用于static、private或final 方法。E项:不能有方法体。
- 2.实现接口
(1)类实现接口 例如A类实现Printable和Addable接口