里氏代换原则

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;
    }
}
相关推荐
同聘云21 小时前
阿里云国际站服务器gpu服务器与cpu服务器的区别,gpu服务器如何使用?
服务器·前端·阿里云·云计算
闲人编程21 小时前
权限系统设计与RBAC实现
java·网络·数据库·rbac·权限·codecapsule
lionliu051921 小时前
执行上下文 (Execution Context)
开发语言·前端·javascript
nbsaas-boot21 小时前
JWT 与 Session 的实用场景分析:从架构边界到工程落地
java·开发语言·架构
Tim_1021 小时前
【C++入门】03、C++整型
java·开发语言·jvm
几何心凉21 小时前
openFuyao多样化算力使能
前端
王中阳Go21 小时前
都2026年了,PHP还纠结转Go还是Java呢?安利一个无缝迁移的框架~
java·后端·go
ss27321 小时前
阻塞队列:三组核心方法全对比
java·数据结构·算法
老华带你飞21 小时前
二手商城|基于springboot 二手商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
Tadas-Gao21 小时前
GraphQL:下一代API架构的设计哲学与实践创新
java·分布式·后端·微服务·架构·graphql