里氏代换原则

java 复制代码
package com.jmj.principles.dmeo2.after;

/**
 * 四边形接口
 */
public interface Quadrilateral {

    double getLength();


    double getWidth();

}
java 复制代码
package com.jmj.principles.dmeo2.after;

/**
 * 长方形类
 */
public class Rectangle implements Quadrilateral{
    private double length;
    private double width;

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }
}
java 复制代码
package com.jmj.principles.dmeo2.after;



public class RectangleDemo {

    public static void main(String[] args) {
     Rectangle rectangle = new Rectangle();
        rectangle.setLength(20);
        rectangle.setWidth(10);
        resize(rectangle);
        printLengthAndWidth(rectangle);
    }

    //扩宽方法
    public static void  resize(Rectangle rectangle){
        //宽如果比长小,进行扩宽的操作
        while (rectangle.getWidth()<=rectangle.getLength()){
            rectangle.setWidth(rectangle.getWidth()+1);
        }

    }

    public static void printLengthAndWidth(Rectangle rectangle){
        System.out.println(rectangle.getLength());
        System.out.println(rectangle.getWidth());
    }

}
java 复制代码
package com.jmj.principles.dmeo2.after;

import com.jmj.principles.dmeo2.before.Rectangle;

/**
 * 正方形
 */
public class Square implements Quadrilateral {

    private double side;

    public double getSide() {
        return side;
    }

    public void setSide(double side) {
        this.side = side;
    }

    @Override
    public double getLength() {
        return side;
    }

    @Override
    public double getWidth() {
        return side;
    }
}
相关推荐
无人生还12 小时前
第 1 篇:从 Vue3 到 React 的思维转变
前端·vue.js·react.js
前端双越老师12 小时前
如何以前端视角(非0基础)学 Java ?
java·node.js·全栈
dear_bi_MyOnly13 小时前
【SpringBoot配置文件】
java·spring boot·后端·学习·spring·java-ee·学习方法
做个文艺程序员13 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
爱分享的程序猿-Clark13 小时前
【前端分享】vue开发项目,如何实现 从A页面跳转到B页面,并传值!
前端·javascript·vue.js
breeze jiang13 小时前
从原生事件到 React 组件化:用状态驱动模型加载进度 UI
前端·react.js·ui
徐小夕13 小时前
花了3天,我写了一款开源AI公众号编辑器
前端·vue.js·github
PBitW13 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
Hilaku14 小时前
2026 年前端大洗牌:React 服务端到 Vite 的底层重构
前端·javascript·程序员
其美杰布-富贵-李14 小时前
Spring Boot 依赖注入说明文档
java·spring boot·python