2016-11-05 9 views
0

これは割り当てではなく、私の講義スライドの1つではっきりしていないし、同じようなものを自分自身でコーディングしようとすると問題に遭遇する。Java:サブクラスに変数を取り込む方法は?

私のサブクラスにある変数の設定方法を理解できません。

ここに私のテストコードはこれまでです:

実装クラス:

import javax.swing.JOptionPane; 

パブリッククラスハウス{

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    int count = 0; 
    room[] r = new room[3]; 
    int option = JOptionPane.showConfirmDialog(null, "type"); 
    if(option==0){ 
     r[count]=new type(); 
     r[count].setSize(25); 
     r[count].setType("Bedroom"); 
    } 
    else if(option==1){ 
     r[count] = new room(); 
     r[count].setSize(25); 
    } 

    JOptionPane.showMessageDialog(null, r[count].toString()); 
} 

}

スーパークラス:

public class room { 
double size; 

public room(){ 

} 

public room(double size){ 
    this.size=size; 
} 

public double getSize(){return this.size;} 

public boolean setSize(double size){ 
    if(size<0.0){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 
public String toString(){ 
    return "Room size: " + this.size; 
} 

}

サブクラス:私は、コードを実行しようとすると、私は型クラスにはsetType()メソッドにデータを挿入しようとした場合

public class type extends room { 
String type; 

public type(){ 

} 

public type (double size, String type){ 
    super(size); 
    this.type=type; 
} 

public String getType(){return this.type;} 

public boolean setType (String type){ 
    if(type.equals("")){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 

public String toString(){ 
    return super.toString() + "Room Type: " + this.getType(); 
} 

}

、それは私を与えるだろうエラー。誰かが私が混乱している場所を教えてもらえますか?ありがとう!

if(option==0){ 
    type t = new type(); 
    t.setSize(25); 
    t.setType("Bedroom"); 
    r[count]= t; 
} 

また、あなたが元の型にキャストすることができます:

答えて

1

は、元のポインタを覚えておいてください

((type) r[count]).setType("Bedroom"); 
関連する問題