已知下列片段代码,则Bird类必须重写Flyable中的 方法(写出方法名)。

已知下列片段代码,则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");
    }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    需要重写的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接口中的方法。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^