2501_94044070 2025-10-30 20:28 采纳率: 0%
浏览 3

下面关于里氏替换原则的描述正确的是()

img


下面关于里氏替换原则的描述正确的是()下面关于里氏替换原则的描述正确的是()

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-10-30 20:30
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    里氏替换原则的描述

    里氏替换原则是面向对象设计中的一个基本原则,它指出:任何父类出现的地方,都应该能够替换成它的子类,而程序的行为不应该受到影响。

    正确的描述

    里氏替换原则的描述正确的是:

    • 子类可以扩展父类的功能,但不能改变父类的原有功能。
    • 子类不能在父类不能访问的资源上访问资源。
    • 子类方法的前置条件(参数、返回类型、异常)不能比父类方法的前置条件更宽松。

    错误的描述

    里氏替换原则的描述错误的是:

    • 子类可以改变父类的原有功能(这是不允许的)。
    • 子类可以在父类不能访问的资源上访问资源(这是不允许的)。

    示例代码

    // 父类
    public class Animal {
        public void eat() {
            System.out.println("动物吃东西");
        }
    }
    
    // 子类
    public class Dog extends Animal {
        @Override
        public void eat() {
            System.out.println("狗吃骨头");
        }
    }
    
    // 子类
    public class Cat extends Animal {
        @Override
        public void eat() {
            System.out.println("猫吃鱼");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Animal animal = new Animal();
            animal.eat();
    
            Animal dog = new Dog();
            dog.eat();
    
            Animal cat = new Cat();
            cat.eat();
        }
    }
    

    在这个示例中,Dog 和 Cat 都是 Animal 的子类,它们都实现了 eat() 方法,但是它们的行为是不同的。这符合里氏替换原则的要求。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月30日