superキーワードとthisキーワードの違いについて
Transformerという抽象クラスを作り、それを継承するDecepticonクラスとAutobotクラスを作りました。その際、下記のコードのようにTransformer抽象クラスに作ったフィールドをDecepticonクラスとAutobotクラスのコンストラクタ内でthisキーワードを使って各々のフィールドにセットできました。しかし、thisキーワードをsuperに置き換えても上手くいきました。
superにすると、Transformer抽象クラスのフィールドの値を書き換えているように思ったのですが、これはなぜでしょうか?
よろしくお願いいたします。
public abstract class Transformer {
public int Strength;
public int Intelligence;
public int Speed;
public int Endurance;
public int Rank;
public int Courage;
public int Firepower;
public int Skill;
public abstract int calcOverall();
}
public class Decepticon extends Transformer {
Decepticon(int Strength, int Intelligence, int Speed, int Endurance, int Rank, int Courage, int Firepower, int Skill) {
this.Strength = Strength;
this.Intelligence = Intelligence;
this.Speed = Speed;
this.Endurance = Endurance;
this.Rank = Rank;
this.Courage = Courage;
this.Firepower = Firepower;
this.Skill = Skill;
}
@Override
public int calcOverall() {
int result = Strength + Intelligence + Speed + Endurance + Firepower;
return result;
}
}
public class Soundwave extends Decepticon {
Soundwave(int Strength, int Intelligence, int Speed, int Endurance, int Rank, int Courage, int Firepower, int Skill) {
super(Strength, Intelligence, Speed, Endurance, Rank, Courage, Firepower, Skill);
}
}