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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/86001540

设计模式六大原则

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

规定:

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()方法,就违背了里氏替换原则。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/86001540
今日推荐