Я пытаюсь понять, как использование интерфейсов дает мне множественное наследование, поскольку я был googling.
class A
{
function do1(){}
function do2(){}
function do3(){}
}
class B extends A
{
function do4(){}
function do5(){}
function do6(){}
}
class C extends B
{
}
В приведенном выше примере класс C имеет все методы из классов A и B. Однако класс B также имеет все методы класса A, которые не нужны.
Мои поиски пришли к использованию интерфейсов для решения этой проблемы, перемещая методы в класс и создавая интерфейсы, как показано ниже.
interface A
{
function do1();
function do2();
function do3();
}
interface B
{
function do4();
function do5();
function do6();
}
class C implements A, B
{
function do1(){}
function do2(){}
function do3(){}
function do4(){}
function do5(){}
function do6(){}
}
Я действительно не вижу, как это решает проблему, потому что весь код находится в новом классе. Если бы я просто хотел использовать класс A как изначально, мне пришлось бы создать новый класс, реализующий интерфейс A и скопировавший тот же код в новый класс.
Есть ли что-то, что мне не хватает?