已知下列片段代码,则Bird类必须重写Flyable中的 方法(写出方法名)。
interface Flyable{
double fly();
default void land() {
System.out.println("landing");
}
}
class Bird implements Flyable{}
interface Flyable {
double fly();
default void land() {
System.out.println("landing");
}
}
class Bird implements Flyable {
@Override
public double fly() {
System.out.println("flaying");
return 0;
}
}
land方法有默认实现,可以不用覆写
参考如下:
interface Flyable{
double fly();
default void land() {
System.out.println("landing");
}
}
class Bird implements Flyable{
@Override
public double fly() {
return 0;
}
}
class Bird implements Flyable{
@Override
public double fly(){
return distance;
}
@Override
public void land(){
System.out.println("Bird is landing");
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:需要重写的Flyable接口中的方法如下:
public interface Flyable {
/**
* 获取当前飞行速度
* @return 返回当前飞行速度
*/
double getSpeed();
/**
* 获取最大飞行高度
* @return 返回最大飞行高度
*/
double getMaxAltitude();
/**
* 获取当前飞行高度
* @return 返回当前飞行高度
*/
double getCurrentAltitude();
/**
* 调整飞行高度
* @param targetAltitude 目标飞行高度
*/
void adjustAltitude(double targetAltitude);
/**
* 计算从当前位置飞行指定距离需要的时间
* @param distance 飞行距离
* @return 返回需要的时间
*/
double calculateFlightTime(double distance);
}
需要重写的方法包括:getSpeed、getMaxAltitude、getCurrentAltitude和adjustAltitude方法。具体实现可以参考下面的代码示例:
public class Bird implements Flyable{
private double speed; // 速度
private double maxAltitude; // 最大高度
private double currAltitude; // 当前高度
/**
* 重写getSpeed方法
*/
@Override
public double getSpeed() {
return speed;
}
/**
* 重写getMaxAltitude方法
*/
@Override
public double getMaxAltitude() {
return maxAltitude;
}
/**
* 重写getCurrentAltitude方法
*/
@Override
public double getCurrentAltitude() {
return currAltitude;
}
/**
* 重写adjustAltitude方法,实现鸟类飞行时高度的调整
* @param targetAltitude 目标高度
*/
@Override
public void adjustAltitude(double targetAltitude) {
int sign = currAltitude < targetAltitude ? 1 : -1;
while (currAltitude != targetAltitude) {
currAltitude += sign;
// 飞行时的其他操作
}
}
/**
* 实现calculateFlightTime方法
*/
@Override
public double calculateFlightTime(double distance) {
// 这里可以根据鸟类的飞行能力
// 计算实际的飞行时间
return distance / speed;
}
}
以上就是Bird类实现飞行所需要重写的Flyable接口中的方法。