如何 运行 来自超类的子类中的方法?

How to run a method within a subclass from a superclass?

我有两个 java 文件。主要 Activity 包含以下内容:

    String randomEvent;

    public void randomTrigger(){

        int min = 1;
        int max = 100;

        Random randomTrigger = new Random();
        int randomNumber = randomTrigger.nextInt(max - min) + min;

        RandomEvent obj = new RandomEvent();

        if (randomNumber == 7) {

            // What do I put here to call the method randomEvent(); in RandomEvent.java ?

        }


    }

    saveSettings();{
        SharedPreferences settings = getSharedPreferences("com.******.******", MODE_PRIVATE);
        settings.edit().putString("randomEvent", randomEvent).commit();
    }

第二个 activity 称为“RandomEvent.java 是 MainActivity 的子class:

package com.******.******;

import android.content.SharedPreferences;

public class RandomEvent extends MainActivity {

    public void randomEvent() {

        MainActivity obj = new MainActivity();
        obj.randomEvent = "You've received a pay raise!";

        payRate = payRate * 1.1f;

        saveSettings();

    }
}

我的问题是,如何正确执行 randomEvent();位于 superclass MainActivity ?

中的 RandomEvent.java class 文件中的方法

可以通过这样做来实现:-

public class MainActivity{
 public void randomEvent() {}  

}

public class RandomEvent extends MainActivity{
 @Override
 public void randomEvent() {
    //You stuff
 }   
}

在这种方法中,您可以从 MainActivity 调用 randomEvent。 但最好这样做:-

public interface Events{
  public void randomEvent();
}

public abstract class MainActivity implements Events{

}

public class RandomEvent extends MainActivity{
  @Override
 public void randomEvent() {
    //You stuff
 } 
}

最好以这种方式保持代码整洁,否则您可以做的是:-

public interface Events{
  public void randomEvent();
}
public class MainActivity{
      public Events getEvents(){
        return null;
      }

      public void randomTrigger(){

            Events events = getEvents();
            if(null != events){
               events.randomEvent();
            }
        }


    }
    }

public class RandomEvent extends MainActivity implements Events{
  @Override
 public void randomEvent() {
    //You stuff
 }
 @Override
 public Events getEvents(){
    return this;
  } 
}

最好的是最后一个。