Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何同时访问不同类的两个方法?_Java_Oop_Methods_Extends - Fatal编程技术网

Java 如何同时访问不同类的两个方法?

Java 如何同时访问不同类的两个方法?,java,oop,methods,extends,Java,Oop,Methods,Extends,在一次采访中,我被问到以下问题 假设有一个类A具有方法drawShape(),还有一个类B具有方法drawSquare() 现在有第三类C扩展了a和B 最后,在我的C类中,我想要这两种方法 如何同时获得这两种方法?现在有第三类C扩展了a和B 在Java中,不能扩展到多个类 如果您想,您可以将B扩展到A,然后将C扩展到B,这样您应该能够访问这两种方法现在有第三类C同时扩展A和B 在Java中,不能扩展到多个类 如果需要,可以将B扩展到A,然后将C扩展到B,这样您应该能够访问这两种方法不要因为Jav

在一次采访中,我被问到以下问题

假设有一个类A具有方法
drawShape()
,还有一个类B具有方法
drawSquare()

现在有第三类C扩展了a和B

最后,在我的C类中,我想要这两种方法


如何同时获得这两种方法?

现在有第三类C扩展了a和B

在Java中,不能扩展到多个类


如果您想,您可以将B扩展到A,然后将C扩展到B,这样您应该能够访问这两种方法

现在有第三类C同时扩展A和B

在Java中,不能扩展到多个类


如果需要,可以将B扩展到A,然后将C扩展到B,这样您应该能够访问这两种方法

不要因为Java不支持而进行扩展,而是可以使用接口:

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()
   }
}

不要因为Java不支持而扩展,相反,您可以使用接口:

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()
   }
}

Java不支持多类继承:一个类只能扩展另一个类

相反,您可以使用组合(在类中包含类)来实现所要求的:

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

    ...
}

现在
C
可以通过执行
a.drawShape()
b.drawSquare()
来访问任何一个方法。Java不支持多类继承:一个类只能扩展另一个类

相反,您可以使用组合(在类中包含类)来实现所要求的:

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

    ...
}

现在
C
可以通过执行
a.drawShape()
b.drawSquare()

来访问这两种方法中的任何一种,您应该真正开始阅读Java是如何工作的。“现在有第三个名为C的类正在扩展类a和类b”,这在Java中是不可能的。Java不支持多重继承。您应该真正开始阅读Java的工作原理。“现在有第三个名为C的类,它扩展了类a和类B”,这在Java中是不可能的。Java不支持多重继承。