具有多重继承的Java序列化?

具有多重继承的Java序列化?,java,serialization,deserialization,Java,Serialization,Deserialization,我正在学习和尝试Java序列化。我的代码具有继承性并遵循结构 Scaffold -> Game.java -> Goals (abstract) -> (extended by) -> GoalsExtender 我在Scaffold(dummy)类中有一个反序列化方法,可以打开game.ser可序列化的数据并将其强制转换为(game)。因此,我不能直接为GoalsXtender本身传递序列化数据,否则它将创建类强制转换异常 这是我的目标。java public abs

我正在学习和尝试Java序列化。我的代码具有继承性并遵循结构

Scaffold -> Game.java -> Goals (abstract) -> (extended by) -> GoalsExtender
我在Scaffold(dummy)类中有一个反序列化方法,可以打开
game.ser
可序列化的数据并将其强制转换为
(game)
。因此,我不能直接为
GoalsXtender
本身传递序列化数据,否则它将创建类强制转换异常

这是我的
目标。java

public abstract class Goals {
private String score;

public Goals(String str) {
    this.score = str;
}

String getGoals() {
    return this.score;
}

   void doSomething(Context context) {
    }
 }
public class Game implements Serializable {
    public String name;
    public int game_num;
    public int opp;
    public int player;
    public Goals goal;

    public Game(int i, int i2, int i3) {
        this.player = i;
        this.game_num = i2;
        this.opp = i3;
    }

    public Game(String str, Goals goal) {
        this.name = str;
        this.goal = goal;
    }

}
public class GoalsExtender extends Goals implements Serializable {
 private String team_name;
 private String club_name;
 private String player_name;

   public GoalsExtender(String team_name, String club_name, String player_name) {
        super(team_name);
        this.club_name = club_name;
        this.player_name = player_name;
    }

   void doSomething(Context context){
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.append(player_name);
         stringBuilder.append(" has scored for");
         stringBuilder.append(team_name);

  }
这是我的
游戏。java

public abstract class Goals {
private String score;

public Goals(String str) {
    this.score = str;
}

String getGoals() {
    return this.score;
}

   void doSomething(Context context) {
    }
 }
public class Game implements Serializable {
    public String name;
    public int game_num;
    public int opp;
    public int player;
    public Goals goal;

    public Game(int i, int i2, int i3) {
        this.player = i;
        this.game_num = i2;
        this.opp = i3;
    }

    public Game(String str, Goals goal) {
        this.name = str;
        this.goal = goal;
    }

}
public class GoalsExtender extends Goals implements Serializable {
 private String team_name;
 private String club_name;
 private String player_name;

   public GoalsExtender(String team_name, String club_name, String player_name) {
        super(team_name);
        this.club_name = club_name;
        this.player_name = player_name;
    }

   void doSomething(Context context){
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.append(player_name);
         stringBuilder.append(" has scored for");
         stringBuilder.append(team_name);

  }
下面是
goalsXtender.java

public abstract class Goals {
private String score;

public Goals(String str) {
    this.score = str;
}

String getGoals() {
    return this.score;
}

   void doSomething(Context context) {
    }
 }
public class Game implements Serializable {
    public String name;
    public int game_num;
    public int opp;
    public int player;
    public Goals goal;

    public Game(int i, int i2, int i3) {
        this.player = i;
        this.game_num = i2;
        this.opp = i3;
    }

    public Game(String str, Goals goal) {
        this.name = str;
        this.goal = goal;
    }

}
public class GoalsExtender extends Goals implements Serializable {
 private String team_name;
 private String club_name;
 private String player_name;

   public GoalsExtender(String team_name, String club_name, String player_name) {
        super(team_name);
        this.club_name = club_name;
        this.player_name = player_name;
    }

   void doSomething(Context context){
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.append(player_name);
         stringBuilder.append(" has scored for");
         stringBuilder.append(team_name);

  }
问题是:


1.)当反序列化并将
(游戏)
类型转换为
(游戏)
时,是否可以在
GoalXtender.java
中传递一个
游戏
序列化对象,该对象可以设置
俱乐部名称
玩家名称
?(本地POJO创建方法也可以)

您能否提供一个示例,说明您到底想做什么?另外,
目标
类可能也应该实现可序列化