我正在研究继承(Java),并且我写了下面的代码。第一部分是CarBase
,然后我创建了一个名为Bus
的子类1。Java继承(局部变量/布尔if)
我的想法是,先做个判断,如果它是一个总线,并且通过这样做,我需要一个布尔[if(isBus)
],但是当我写在Eclipse中的代码,有一个错误信息,说“isBus
能不解决变量“。 有人能告诉我如何解决这个问题吗?我是否需要首先声明布尔变量?
另一个问题是关于局部变量的声明。 在getOnBus(0
方法中,我有一个名为temp
的局部变量,我被告知每当使用一个局部变量检查一个方法时,我需要首先声明它,然后我将能够使用它,但是我看到有人直接使用它像下面这样,我在徘徊两者之间的区别是什么?
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus(int p_amount) {
if(isBus) {
int temp = 0; // <===
temp = current_Passenger + p_amount; // <===
if(temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
或者如果我使用它而没有声明它有区别吗?
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus (int p_amount) {
if(isBus) {
int temp=current_Passenger+p_amount; // <====
if(temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
的代码是如下
第一部分CarBase(父)
public class CarBase {
public int speed;
public String name;
public String color;
public int maxSpeed = 90;
// Method
public void speedUp(int p_speed) {
int tempSpeed = 0;
if (p_speed > 0) {
tempSpeed = speed + p_speed;
}
if (tempSpeed <= maxSpeed) {
speed =tempSpeed;
}
}
}
第二部分总线(Child1)
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus (int p_amount) {
if (isBus) {
int temp = 0;
temp = current_Passenger + p_amount;
if (temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
'getOnBus'是一种方法,巴士班,那么为什么你认为你必须“作出判断,如果它是公共汽车”。你肯定知道这是一辆公共汽车。对于第二个问题, – Eran
,没有区别。另外''getOnBus'方法在'Car'类中对我没有意义,因为它似乎仅限于'Bus'。 – SomeJavaGuy
请一次提出一个问题。 – EJP