自我突破题
2.1
请写出抽象类和
Java
接口的三点区别。
答:
1
,抽象类是使用
abstract class
来描述,接口是使用
interface
来描述的。
2
,在抽象类中允许包含非抽象方法,而在接口中必须全部是抽象方法(尽管可以不用显示声明)。
3
,接口之间可以实现多继承关系,而抽象类只能被一个类继承。
4
,接口内的字段只能使用
static final
来修饰,而抽象类中可以有变量。
5
,抽象类中可以有构造方法,而接口不可以有。
6
,抽象类内的方法可以是用
public
,
protected
,
private
和默认修饰符进行修饰,而接口方法只能使用
public
修饰。
自我突破题
2.2
如下接口:
package com.oozinoz.simulation
public interface RocketSim{
abstract double getMass();
public double getThrust();
void setSimTime(Double t);
}
下面的表述哪些是正确的?
A.
RocketSim
接口中的三个方法都是抽象方法,尽管只有
getMass()
方法显示地声明为抽象的。
B.
RocketSim
接口中的三个方法都是公有方法,尽管只有
getThrust()
方法被显示地声明为公有的。
C.
接口被声明为“公有接口”;即使省略了
public
关键字,它也应该是公有的。
D.
可以再创建一个接口,如
RocketSimSolid
接口,并扩展
RocketSim
接口。
E.
每个接口必须至少含有一个方法。
F.
接口可以声明实例字段,实现该接口的类也必须声明该字段。
G.
虽然不能实例化一个接口,但接口定义可以声明构造器方法,要求实现该接口的类必须提供具有指定参数的构造器。
自我突破题
2.3
请举出一个含有方法的接口例子,说明类在实现接口的方法时并不一定要执行若干操作或返回某个值。
答:监听器接口和监听适配器类。例如:
WindowListener
和
WindowAdapter
。
WindowAdapter
实现了
WindowListener
,但实现的方法体中为空。这样在使用某种监听方法时,可以继承
WindowAdapter
并只实现其中需要使用的方法即可。