This question already has answers here:
Since a class in Java cannot extend multiple classes. How would I be able to get by this? [closed]

(4个答案)


26天前关闭。





我正在尝试在视频播放器中添加https://github.com/mdg-iitr/Swipper

所以我加了

public class VideoPlayerActivity extends AppCompatActivity, Swipper {

//Code


我收到一个错误,因为Java无法扩展多个类,那么解决方案是什么?

由于根据Swipper文档,实现Swipper的唯一方法是public class MainActivity extends Swipper{}

但是,我还需要导入AppCompatActivity。

最佳答案

扩展类是Java中一个棘手的问题。
实现此目的的一种方法是改善代码隔离,它是创建另一个扩展Swipper的类B。在那里,您将创建与之交互所需的公共方法。
在VideoPlayerActivity类中,创建B的实例,或将其作为参数传递。 VideoPlayerActivity仅与类B交互,因此无需从Swipper继承VideoPlayerActivity。
这样VideoPlayerActivity可以扩展AppCompatActivity


class B extends Swipper{
 int a,b;

 //override swipper functions
 @Override
 public void play(){

 }
}

class VideoPlayerActivity extends AppCompatActivity{
 B instanceB = new B();

 public void play(){
  instanceB.play();
 }

 //instead of calling directly, since this class does not extends swipper, you call that function of class B, that extenda Swipper
 public void inheritedFunction(){
  instanceB.inheritedFunction()
 }

}

关于java - 使用AppCompatActivity和Swipper扩展具有多个类的java ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62005659/

10-10 18:56