刚才在群里,一个网友问了一个关于接口的题:
interface I {
void setValue(int val);
int getValue();
}
定义 A:
(a) class A extends I {
int value;
void setValue(int val) { value = val; }
int getValue() { return value; }
}
定义 B:
(b) interface B extends I {
void increment();
}
定义 C:
(C) interface D implements I {
void increment();
}
定义D:
(d) class E implements I {
int value;
public void setValue(int val) { value = val; }
}
问选项中哪个是正确的,当然先把答案是B。
选项A中类A不能通过extends关键字来实现接口,类实现接口必须使用implements关键字,一个类可以同时实现多个接口,但只能extends一个类。选项B中是正确的,接口要继承另外一个接口,都要使用extends关键字,而且可以使用extends同时实现多个接口。选项C错误。选项D当然跟明显了,接口的方法没有被实现。
需要说明的是虽然在接口中集成接口是用的extends关键字,但是绝对不可以用在接口中继承抽象类。接口中可以同时实现多个接口。
interface I {
void setValue(int val);
int getValue();
}
定义 A:
(a) class A extends I {
int value;
void setValue(int val) { value = val; }
int getValue() { return value; }
}
定义 B:
(b) interface B extends I {
void increment();
}
定义 C:
(C) interface D implements I {
void increment();
}
定义D:
(d) class E implements I {
int value;
public void setValue(int val) { value = val; }
}
问选项中哪个是正确的,当然先把答案是B。
选项A中类A不能通过extends关键字来实现接口,类实现接口必须使用implements关键字,一个类可以同时实现多个接口,但只能extends一个类。选项B中是正确的,接口要继承另外一个接口,都要使用extends关键字,而且可以使用extends同时实现多个接口。选项C错误。选项D当然跟明显了,接口的方法没有被实现。
需要说明的是虽然在接口中集成接口是用的extends关键字,但是绝对不可以用在接口中继承抽象类。接口中可以同时实现多个接口。