] Короткий ответ: Ты не можешь. Java имеет только множественное наследование интерфейсов. [
] [] Чуть более длинный ответ: Если вы убедились, что интересующие вас методы находятся в интерфейсах, то вы можете иметь класс, реализующий интерфейсы, а затем делегировать экземпляры "супер-классов":[
] [interface Noisy {
void makeNoise();
}
interface Vehicle {
void go(int distance);
}
class Truck implements Vehicle {
...
}
class Siren implements Noisy {
...
}
class Ambulance extends Truck implements Noisy {
private Siren siren = new Siren();
public makeNoise() {
siren.makeNoise();
}
...
}
] ] Нельзя, Java не поддерживает множественное наследование. Что вы можете сделать, так это составить. [
]] Множественное наследование на Java не допускается. Используйте делегаты и интерфейсы вместо них[
] [public interface AInterface {
public void a();
}
public interface BInterface {
public void b();
}
public class A implements AInterface {
public void a() {}
}
public class B implements BInterface {
public void b() {}
}
public class C implements AInterface, BInterface {
private A a;
private B b;
public void a() {
a.a();
}
public void b() {
b.b();
}
}
]
[]Начиная с Java 8 можно использовать []Default Methods[] в интерфейсах.[
].] Java явно запрещает множественное наследование реализации. Остаётся использовать интерфейсы и композицию для достижения подобных результатов. [
]