怎么在JAVA中实现多重继承?要求不光能继承行为能力,还应继承该行为特征。
有人会说,用接口。但这会有一个不如意的地方。
举个例子:
我有一个车接口,里面有个行使的方法
还有一个火箭接口,里面有个飞行的方法
我有一个车类,实现了车接口里的行使方法
有一个火箭类,实现了火箭接口的飞行方法
那么,问题来了
我想造一个不明飞行物类
要求能有车类中实现了的行使的方法,即表现出车类中实现了行使行为和特征,不光是具有行使这个能力。
还能有火箭类中实现了的飞行的方法,即表现了火箭类中实现了的飞行的行为和特征,不光是具有飞行这种行为能力。
此外,此不明飞行物类还有别的方法,比如变形的方法
解决上述问题有个要求,就是不准COPY车类中行使方法中的实现源代码和火箭类中飞行的实现源代码。
既要通过机制解决这个问题。怎么做?
有人会说,用接口。但这会有一个不如意的地方。
举个例子:
我有一个车接口,里面有个行使的方法
还有一个火箭接口,里面有个飞行的方法
我有一个车类,实现了车接口里的行使方法
有一个火箭类,实现了火箭接口的飞行方法
那么,问题来了
我想造一个不明飞行物类
要求能有车类中实现了的行使的方法,即表现出车类中实现了行使行为和特征,不光是具有行使这个能力。
还能有火箭类中实现了的飞行的方法,即表现了火箭类中实现了的飞行的行为和特征,不光是具有飞行这种行为能力。
此外,此不明飞行物类还有别的方法,比如变形的方法
解决上述问题有个要求,就是不准COPY车类中行使方法中的实现源代码和火箭类中飞行的实现源代码。
既要通过机制解决这个问题。怎么做?
JAVA里一个类可以实现多个接口。
继承的本意在于抽象,而不是禁止你copy代码,他的目的不是为了代码重用。
void run();
}interface Flyable {
void fly();
}class RunObject implements Runnable {
void run() {
//code
}
}class FlyObject implements Flyable {
void fly() {
//code
}
}class Car implements Runnable {
private Runnable runObject; void run() {
runObject.run();
}
}class Rocket implements Flyable {
private Flyable flyObject; void fly() {
flyObject.fly();
}
}class UnknownObject implements Runnable, Flyable {
private Runnable runObject;
private Flyable flyObject; void run() {
runObject.run();
}
void fly() {
flyObject.fly();
}
}