里氏替换原则(LSP)

他是最基础的设计模式,里氏替换原则要求,任何父类出现的地方子类一定可以出现,子类可以在父类基础上扩展新功能。

注意:

1.用父类接受的子类对象,是没有办法使用子类的方法和其他成员的 其实是隐藏掉了。

2.如果子类拥有与父类相同的成员或方法和其他非私有成员,默认为隐藏(new),如果类型声明是父类那么调用父类的非私有成员,特别注意隐藏不是覆盖。

虚方法 virtual

虚方法需要使用virtual关键字声明,子类可以使用override关键字重写父类方法,虚方法有它适合的场景,如果只是单纯的重写过后不管了,那不如使用另一个叫抽象方法的东西。如果您使用的是虚方法一般情况下,子类重写父类的方法是作为父类方法的功能扩展!子类重写方法执行完后,一般还需要执行父类的虚方法。(比如 EF Core DbContext 中的 OnConfiguring)

 

posted @ 2023-01-26 17:56  含泪拒绝王阿姨i  阅读(69)  评论(0)    收藏  举报