java设计原则

里式替换原则

只要是父类出现的地方,都可以用子类替代,且不会出现任何异常。但是反过来则不行,有子类出现的地方,不能用其父类替代
子类继承了父类,拥有了父类和方法,同时还可以定义自己有,而父类没有的方法。这是在继承父类方法的基础上进行功能的扩展,符合里氏替换原则,代码示例:

public class TestA {
    public void sum(int i,int j){
        System.out.println(i+"i"+j+"j"+"="+(i+j));
    }

    public static void main(String[] args) {
        System.out.println("父类结果:");
        TestA a=new TestA();
        a.sum(1,2);
        //父类存在的地方,可以用子类替代 子类B替代父类A
        System.out.println("子类代替父类结果:");
        TestB b=new TestB();
        b.sum(1,2);
        b.newSum();

    }

}

class TestB extends TestA{
    public void newSum(){
        System.out.println("TestB的方法");
    }
}

运行结果:
在这里插入图片描述

依赖倒置原则

依赖倒置原则的目的是通过要面向接口的编程来降低类间的耦合性,所以我们在实际编程中只要遵循以下4点,就能在项目中满足这个规则:

每个类尽量提供接口或抽象类,或者两者都具备。
变量的声明类型尽量是接口或者是抽象类。
任何类都不应该从具体类派生。
使用继承时尽量遵循里氏替换原则,代码示例:

public interface Shop {
    /**
     * 购物方法
     */
     String sell();

}

class Shop1 implements Shop {
    @Override
    public String sell() {
        return "买吃的";
    }
}

class Shop2 implements Shop {
    @Override
    public String sell() {
        return "买穿的";
    }
}

class Customer{
     void shopping(Shop shop){
        System.out.println(shop.sell());

    }
}

class TestShop {
    public static void main(String[] args) {
        Customer customer = new Customer();
        System.out.println("购买的商品:");
        customer.shopping(new Shop1());
        customer.shopping(new Shop2());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值