在接受采访时,我被问到以下问题。
假设有一个方法drawShape()
的A类,另一个方法有drawSquare()
的B类。
现在有第三个C类,它同时扩展了A和B.
现在终于在我的班级C中我想要这两种方法。
如何同时获得这两种方法?
答案 0 :(得分:1)
Now there is a third class C that extends both A and B
在Java中,您无法扩展到多个类。
如果你想要,可以将B扩展为A,然后将C扩展为B,这样你就可以访问这两种方法
答案 1 :(得分:1)
不要因为Java不支持而扩展,而是可以使用interface:
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()
}
}
答案 2 :(得分:1)
Java不支持多个Class继承:Class只能扩展另一个Class。
相反,你可以使用Composition(在你的类中有类)来实现所要求的:
Class C {
A a = new A();
B b = new B();
...
}
现在C
可以通过a.drawShape()
或b.drawSquare()
访问这两种方法。