里氏代换原则

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;
    }
}
相关推荐
yume_sibai4 分钟前
ES6 核心知识点完全总结(变量 + 箭头函数 + 解构 + Promise + 模块化)
前端·ecmascript·es6
云雀衔光7 分钟前
MCP + 应用生成:让 AI 直接产出可交互的应用
java·人工智能·测试工具·microsoft·交互·ai编程
Moment16 分钟前
为什么市面上的 coding agent 大多数都基于Nodejs?
前端·后端·面试
Nuanyt22 分钟前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
吃瓜的猹27 分钟前
Gemini 3.8 Flash 是真的站起来了,一起来看看我到底做了什么吧~
前端
光影少年27 分钟前
React18 对RN 的影响
android·前端·react.js·ios·前端框架
Shan120529 分钟前
经典算法题示例与详解:飞地的数量(二)
java·数据结构·算法
一嘴一个橘子31 分钟前
java - redis 缓存雪崩
java
tryCbest35 分钟前
Vue Router学习及使用
前端·vue.js
杉氧37 分钟前
丝滑的奥秘:Reanimated 3 动画引擎与手势处理(Gesture Handler)
android·前端·react native