当前位置: 技术问答>java相关
菜鸟问题:请问一个类中可否实现一个接口列表中的方法?
来源: 互联网 发布时间:2015-06-03
本文导语: 由于在书上看到这么一句话: “在类的声明部分,用implements关键字声明该类将要实现哪些接口” * * 若一个类要实现接口可以用以下...
由于在书上看到这么一句话:
“在类的声明部分,用implements关键字声明该类将要实现哪些接口”
* *
若一个类要实现接口可以用以下语法声明类头:
public class 类名 [extends 父类名 implements 接口]
问题:请问“接口”处可否是接口列表?
“在类的声明部分,用implements关键字声明该类将要实现哪些接口”
* *
若一个类要实现接口可以用以下语法声明类头:
public class 类名 [extends 父类名 implements 接口]
问题:请问“接口”处可否是接口列表?
|
The following example shows a concrete class combined with several interfaces to produce a new class:
//:Adventure.java
// Multiple interfaces.
import java.util.*;
interface CanFight {
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() {}
}
class Hero extends ActionCharacter
implements CanFight, CanSwim, CanFly {
public void swim() {}
public void fly() {}
}
public class Adventure {
static void t(CanFight x) { x.fight(); }
static void u(CanSwim x) { x.swim(); }
static void v(CanFly x) { x.fly(); }
static void w(ActionCharacter x) { x.fight(); }
public static void main(String[] args) {
Hero h = new Hero();
t(h); // Treat it as a CanFight
u(h); // Treat it as a CanSwim
v(h); // Treat it as a CanFly
w(h); // Treat it as an ActionCharacter
}
} ///:~
//:Adventure.java
// Multiple interfaces.
import java.util.*;
interface CanFight {
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() {}
}
class Hero extends ActionCharacter
implements CanFight, CanSwim, CanFly {
public void swim() {}
public void fly() {}
}
public class Adventure {
static void t(CanFight x) { x.fight(); }
static void u(CanSwim x) { x.swim(); }
static void v(CanFly x) { x.fly(); }
static void w(ActionCharacter x) { x.fight(); }
public static void main(String[] args) {
Hero h = new Hero();
t(h); // Treat it as a CanFight
u(h); // Treat it as a CanSwim
v(h); // Treat it as a CanFly
w(h); // Treat it as an ActionCharacter
}
} ///:~
|
当然可以啦!一个class只能“继承”一个class,却可以“实现”多个接口!
|
当然可以,接口列表可以用“,”隔开。
|
java并不支持多重继承,但是实现多个接口其实是一种变相的多重继承,就是接口中的方法必须在类中实现。
|
class test implements interface1,interface2,...