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;
 }

}

Подкласс:

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();
}

}

Когда я пытаюсь запустить код, если я пытаюсь вставить данные в метод setType() в классе типов, это даст мне ошибку. Может кто-нибудь сказать, пожалуйста, где я портлю? Спасибо!

1 ответ

Решение

Запомните оригинальный указатель:

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

В качестве альтернативы вы можете привести к исходному типу:

    ((type) r[count]).setType("Bedroom");
Другие вопросы по тегам