私はClassCastExceptionがこのクラスを型キャストする方法は?
を得ることなくProBasketballPlayerにそれを型キャストすることができますどのようにオブジェクト
BasketBallPlayer bp1;
bp1=new BasketBallPlayer("Tim Duncan", "Center", "Spurs", 83, 220, 4, 5, 8);
public class BasketBallPlayer {
protected String name;
protected String position;
protected String team;
protected int height;
protected int weight;
protected int agility;
protected int speed;
protected int ballHandling;
public BasketBallPlayer() {
this.name = "unknown";
this.position = "unknown";
this.team = "unknown";
this.height = 0;
this.weight = 0;
this.agility = 0;
this.speed = 0;
this.ballHandling = 0;
}
public BasketBallPlayer(String name, String position, String team)
{
this.name = name;
this.position = position;
this.team = team;
this.height = 0;
this.weight = 0;
this.agility = 0;
this.speed = 0;
this.ballHandling = 0;
}
public BasketBallPlayer (String name, String position, String team, int height, int weight,
int agility, int speed, int ballHandling)
{
this.name = name;
this.position = position;
this.team = team;
this.height = height;
this.weight = weight;
this.agility = agility;
this.speed = speed;
this.ballHandling = ballHandling;
}
を作成した場合、私はBasketBallPlayer
と呼ばれるこのスーパークラスは、私がProBasketBallPlayer
と呼ばれる子クラスを持っていますここにProBasketballPlayerのコンストラクタがあります
public class ProBasketballPlayer extends BasketBallPlayer {
protected int yearsInLeague;
protected String role;
public ProBasketballPlayer()
{
super();
yearsInLeague = 0;
role = "bench";
}
public ProBasketballPlayer(String name, String position, String team)
{
super(name, position, team);
this.name = name;
this.position = position;
this.team = team;
yearsInLeague = 0;
role = "bench";
}
public ProBasketballPlayer(String name, String position, String team, int height, int weight,
int agility, int speed, int ballHandling, int yearsInLeague, String role)
{
super(name, position, team, height, weight, agility, speed, ballHandling);
this.yearsInLeague = yearsInLeague;
this.role = role;
}
サブクラスはスーパークラスとしてのみキャストできますが、他の方法でキャストすることはできません。簡単に言えば、フェラーリは一種の車ですが、車はフェラーリの一種ではありません。リストを作成し、メルセデス、フェラーリ、フォード車をリストに追加すると、これらのサブクラスのそれぞれが車のスーパークラスを持っていることを考えると、とてもうれしいでしょう。 –
ManoDestra
あなたはティム・ダンカンを食べるべきです。 83センチメートルの高さで体重220ポンドは健康に聞こえません。 –
@RolandIllig何かがインチのことを私に伝えています... XD – 4castle