如何 运行 来自超类的子类中的方法?
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;
}
}
最好的是最后一个。
我有两个 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;
}
}
最好的是最后一个。