里氏代换原则

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;
    }
}
相关推荐
幽络源小助理2 分钟前
苹果CMS V10 MXPro V4.5模版下载, 自适应视频主题源码, 幽络源源码
前端·开源·源码·php源码
组合缺一5 分钟前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring·ai·langchain·llm·solon
c++之路16 分钟前
适配器模式(Adapter Pattern)
java·算法·适配器模式
kyriewen25 分钟前
坏了,黑客学会用AI写外挂了
前端·程序员·ai编程
吴声子夜歌29 分钟前
Java——接口的细节
java·开发语言·算法
阿拉金alakin32 分钟前
深入理解 Java 锁机制:CAS 原理、synchronized 优化与主流锁策略全总结
java·开发语言
myheartgo-on36 分钟前
Java—方 法
java·开发语言·算法·青少年编程
雨落在了我的手上41 分钟前
如何学习java?
java·开发语言·学习
xiangxiongfly9151 小时前
Vue3 根据角色权限动态加载路由
前端·javascript·vue.js·动态加载路由
达达尼昂1 小时前
Claude 多 Agent 系统:从零搭建一个 4 Agent 团队
前端·架构·ai编程