Для начала у меня есть три класса. Один называется:Наследование Java - не удается найти метод для вызова объекта?
Температура (суперкласс)
Погода (подкласс суперкласса)
UseTemperature (подкласс, который содержит основной метод)
Для этой программы основной метод должен показывать температуру в градусах Цельсия и скорость ветра. Я не знаю, в чем проблема, но ..
Моя проблема заключается в том, что setWindSpeed / getWindSpeed не может быть найден в UseTemperature.
//TEMPERATURE:
public class Temperature
{
private double degrees;
public void setDegrees (double degrees)
{
this.degrees = degrees;
}
public double getDegrees()
{
return degrees;
}
/////////////////////////////////////////////////////////////////////////////////////////
//WEATHER:
public class Weather extends Temperature
{
private double windspeed; // Number + km/h
private void setWindSpeed (double windspeed) //setter
{
this.windspeed = windspeed;
}
public double getWindSpeed() //getter
{
return windspeed;
}
}
/////////////////////////////////////////////////////////////////////////////////////////
//USE TEMPERATURE:
class UseTemperature // can be public but makes no diffrence
{
public static void main (String args[])
{
Temperature temp;
temp = new Temperature();
temp.setDegrees (40.0);
temp.setWindSpeed (70.0); // NOT FOUND IN TEMPERATURE
System.out.print (temp.getDegrees());
System.out.print (" degrees ");
System.out.println (temp.getWindSpeed()); // NOT FOUND IN TEMPERATURE
System.out.println (" km/h");
}
}
Вам необходимо объявить методы public/protected, которые вы хотите вызвать в другом месте. – Omar
Это очень плохое использование наследования здесь. Он не выдерживает температуру _IS_A_. –