2013-02-20 4 views
0

В интервью мне задали следующий вопрос.Как получить доступ к обоим методам разных классов одновременно?

Предположим, что существует класс A с методом drawShape() и существует другой класс B по методу drawSquare().

Теперь есть третий класс C, который распространяется как A и B.

Теперь, наконец, в моем классе C Я хочу оба этих метода.

Как получить оба эти метода одновременно?

+2

Вы действительно должны начать читать о том, как работает Java. – Achrome

+3

* "теперь есть третий класс с именем C, который расширяет оба класса A и B" * Невозможно в Java. Java не поддерживает множественное наследование. –

ответ

1

Вы не проходит, потому что Java не suppert, вместо этого вы можете использовать интерфейс :

interface IA{ 
    void drawshape(); 
} 

inerface IB{ 
    void drawsquare(); 
} 

class A implements IA{ 
    ... 
} 

class B implements IB{ 
    ... 
} 

class C implements IA,IB{ 
    private A a; 
    private B b; 

    void drawshape(){ 
    a.drawshape() 
    } 

    void drawsquare(){ 
    b. drawsquare() 
    } 
} 
1

Now there is a third class C that extends both A and B

В Java, вы не можете расширить на несколько классов.

Если вы хотите, вы можете расширить B до A, а затем продлить C до B, таким образом, вы должны быть в состоянии получить доступ к обоим методам

1

Java не поддерживает множественное наследование класса: класс может распространять только один класс.

Вместо этого, вы можете использовать композиции (имеющие классы внутри класса), чтобы достичь того, что было предложено:

Class C { 
    A a = new A(); 
    B b = new B(); 

    ... 
} 

Теперь C может получить доступ к любому методу, делая a.drawShape() или b.drawSquare().

Смежные вопросы