设计模式六大原则(三)里氏替换原则

设计模式六大原则

定义:所有使用父类的地方都必须可以使用其子类。

规定:

1.不能重写父类非抽象方法。
2.子类中可以增加自己的特性。
3.无论是重写还是重载,如与父类冲突,必须保证执行父类的方法。

特点:

1.能用子类的地方不一定能用父类
2.能用父类的地方一定能用子类

举例子:

创建一个家族:

public abstract class Family {
    public void getSurname(){
        Log.w("打印","此家族必须姓杨,不可修改!");
    }
    abstract public void getName();
}

创建个人:

public class Personal extends Family {
    @Override
    public void getName() {
        Log.w("打印","个人可以自己修改名字!");
    }
}

现在喊该家族的人,要有一个人来应答:

Family family = new Personal();
Log.w("打印","你姓什么?");
family.getSurname();
Log.w("打印","你的名字是?");
family.getName();

打印结果:

2019-01-07 15:03:14.699 W/打印: 你姓什么?
2019-01-07 15:03:14.700 W/打印: 此家族必须姓杨,不可修改!
2019-01-07 15:03:14.700 W/打印: 你的名字是?
2019-01-07 15:03:14.700 W/打印: 个人可以自己修改名字!

如果重写了getSurname()方法,就违背了里氏替换原则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值