java中方法的继承和重写
我正在努力解决继承问题。我有一个类结构,它由一个接口(Aeroplane)、一个抽象类(Aeroplane实现)和两个子类组成,抽象类实现了与这两个类一致的方法:一个客机和一个巨型喷气机 客机和大型喷气式飞机各有不同的燃油容量,因此包含以下字段:java中方法的继承和重写,java,Java,我正在努力解决继承问题。我有一个类结构,它由一个接口(Aeroplane)、一个抽象类(Aeroplane实现)和两个子类组成,抽象类实现了与这两个类一致的方法:一个客机和一个巨型喷气机 客机和大型喷气式飞机各有不同的燃油容量,因此包含以下字段: private static final int MAX_FUEL_CAPACITY = 49; 我编写了一个addFuel方法,它强制执行某些限制: 我最初在每节课上都有以下内容,但认为这是一种糟糕的做法,因为有很多重复: Intege
private static final int MAX_FUEL_CAPACITY = 49;
我编写了一个addFuel方法,它强制执行某些限制:
我最初在每节课上都有以下内容,但认为这是一种糟糕的做法,因为有很多重复:
Integer addFuel(int litres) {
if (litres < 1) {
throw IndexOutOfBoundsException("entered fuel volume must be greater than zero. Zero litres entered.")
}
if (fuelInLitres == MAX_TANK_CAPACITY) {
throw IndexOutOfBoundsException("tank is at full capacity. Zero litres entered.")
}
if (litres + fuelInLitres > MAX_TANK_CAPACITY) {
throw IndexOutOfBoundsException("entered fuel volume is too large - tank does not have sufficient capacity. Zero litres entered.")
}
fuelInLitres += litres;
}
您应该在基类中添加一个getMaxFuelCapacity()方法,并在两个子类中为其提供两种不同的实现。然后,您将能够将addFuel()中的所有剩余逻辑移动到基类。您应该在基类中添加一个getMaxFuelCapacity()方法,并在两个子类中为其提供两种不同的实现。然后,您将能够将addFuel()中的所有剩余逻辑移动到基类。您应该在基类中添加一个getMaxFuelCapacity()方法,并在两个子类中为其提供两种不同的实现。然后,您将能够将addFuel()中的所有剩余逻辑移动到基类。您应该在基类中添加一个getMaxFuelCapacity()方法,并在两个子类中为其提供两种不同的实现。然后,您将能够将addFuel()中的所有剩余逻辑移动到基类。您应该在基类
整数addFuel(int升,int MaxCapacity)
中添加一个方法,并将整个逻辑从子类移动到基类的addFuel(int升,int MaxCapacity)
方法,在子类中添加新方法示例
getMaxFuel(int litres){
addFuel(litres, MaxCapcity)
}
您应该在基类
Integer addFuel(int-lills,int-MaxCapacity)
中添加一个方法,并将整个逻辑从子类移动到基类的addFuel(int-lills,int-MaxCapacity)
方法,并在子类中添加新方法示例
getMaxFuel(int litres){
addFuel(litres, MaxCapcity)
}
您应该在基类
Integer addFuel(int-lills,int-MaxCapacity)
中添加一个方法,并将整个逻辑从子类移动到基类的addFuel(int-lills,int-MaxCapacity)
方法,并在子类中添加新方法示例
getMaxFuel(int litres){
addFuel(litres, MaxCapcity)
}
您应该在基类
Integer addFuel(int-lills,int-MaxCapacity)
中添加一个方法,并将整个逻辑从子类移动到基类的addFuel(int-lills,int-MaxCapacity)
方法,并在子类中添加新方法示例
getMaxFuel(int litres){
addFuel(litres, MaxCapcity)
}
在抽象类中保留addFuel()
方法
只需在抽象类中创建一个额外的抽象方法
public int getMaxFuelCapacity();// Call to this when you need MaxFuelCapacity
在子类中提供此方法所需的实现
在addFuel方法调用中getMaxFuelCapacity()
Integer addFuel(int litres) {
int maxCapacity=getMaxFuelCapacity();
// Do whatever you want to do
}
在抽象类中保留addFuel()
方法
只需在抽象类中创建一个额外的抽象方法
public int getMaxFuelCapacity();// Call to this when you need MaxFuelCapacity
在子类中提供此方法所需的实现
在addFuel方法调用中getMaxFuelCapacity()
Integer addFuel(int litres) {
int maxCapacity=getMaxFuelCapacity();
// Do whatever you want to do
}
在抽象类中保留addFuel()
方法
只需在抽象类中创建一个额外的抽象方法
public int getMaxFuelCapacity();// Call to this when you need MaxFuelCapacity
在子类中提供此方法所需的实现
在addFuel方法调用中getMaxFuelCapacity()
Integer addFuel(int litres) {
int maxCapacity=getMaxFuelCapacity();
// Do whatever you want to do
}
在抽象类中保留addFuel()
方法
只需在抽象类中创建一个额外的抽象方法
public int getMaxFuelCapacity();// Call to this when you need MaxFuelCapacity
在子类中提供此方法所需的实现
在addFuel方法调用中getMaxFuelCapacity()
Integer addFuel(int litres) {
int maxCapacity=getMaxFuelCapacity();
// Do whatever you want to do
}
两个子类的addFuel方法实现是否保持不变?是的,逻辑永远不会改变,每个子类的MAX_TANK_CAPACITY字段始终不同。两个子类的addFuel方法实现是否保持不变?是的,逻辑永远不会改变,每个子类的“最大油箱容量”字段总是不同addFuel方法实现对于两个子类是否保持不变?是的,逻辑永远不会改变,每个子类的“最大油箱容量”字段总是不同addFuel方法实现对于两个子类是否保持不变?是,逻辑永远不会改变,每个子流程的“最大油箱容量”字段总是不同的,谢谢!getMaxFuelCapacity()是否不需要放在我的子类中,而不是我的抽象类中,因为每个抽象类都有单独的值,即私有静态final int MAX_FUEL_CAPACITY=49;对于客机和私人飞机,静态最终int最大燃料容量=60;大型喷气式飞机?所以这些值是不同的…您需要以您想要的方式在每个子类中提供getMaxFuelCapacity的实现。。。。我通过返回相应的
MAX\u FUEL\u CAPACITY
来提供,谢谢!getMaxFuelCapacity()是否不需要放在我的子类中,而不是我的抽象类中,因为每个抽象类都有单独的值,即私有静态final int MAX_FUEL_CAPACITY=49;对于客机和私人飞机,静态最终int最大燃料容量=60;大型喷气式飞机?所以这些值是不同的…您需要以您想要的方式在每个子类中提供getMaxFuelCapacity的实现。。。。我通过返回相应的MAX\u FUEL\u CAPACITY
来提供,谢谢!getMaxFuelCapacity()是否不需要放在我的子类中,而不是我的抽象类中,因为每个抽象类都有单独的值,即私有静态final int MAX_FUEL_CAPACITY=49;对于客机和私人飞机,静态最终int最大燃料容量=60;大型喷气式飞机?所以这些值是不同的…您需要以您想要的方式在每个子类中提供getMaxFuelCapacity的实现。。。。我通过返回相应的MAX\u FUEL\u CAPACITY
来提供,谢谢!Wou