`

C#中的里氏替换原则

    博客分类:
  • C#
c# 
阅读更多
里氏转换原则
子类可以赋值给父类对象
父类对象可以强制转化为对应的子类对象


里氏替换原则直观理解就是"子类是父类",反过来就说不通了.
就像男人是人对的,但人是男人就不对了.
这样明白了吧.


在面向对象思想中可知,派生类拥有基类向下公开的所有特征,它是基类的一个特例。
当派生类对象赋于基类类型时,将出现以下情况:派生类的数据结构依次对应于基类的数据结构。而派生类拥有的自己的数据将不可见。

当基类的对象试图转换为派生类型时,将出现基类对象的数据无法依次填充完派生类的所有数据结构。这就造成了它将无法完成派生类定义的功能。编译器将会提示甚至报错。
这就是派生类能胜任基类功能,而基类却无法完全胜任派生类功能的原因。
强制转换属于 基类到派生的过程:那是因为 设计人员知道:该基类对象的数据结构完全可以填充完派生类的结构。否则,将出现强转错误。一般最好避免使用强转!

还有,子类能够出现在任何父类对象出现的地方不是完全正确的,父类有时也不会将自己的一些成员公开给子类。
C#示例代码:http://www.eyesourcecode.com/f/CSharp/1
分享到:
评论

相关推荐

    里氏替换原则Demo

    总结一下,里氏替换原则是面向对象设计中的关键原则,它指导我们如何正确地使用继承,避免因滥用而导致的代码耦合和错误。遵循LSP,我们的代码会更加灵活、可维护,并能更好地适应需求的变化。在实际编程中,我们...

    设计模式之里氏转换原则

    里氏转换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,它是SOLID原则中的L原则。这个原则是由Barbara Liskov在1987年提出的,它规定子类型必须能够替换它们的基类型,而不影响程序...

    C#里氏转换.zip

    总的来说,C#中的里氏转换原则是保证代码可扩展性和维护性的重要工具,它使得我们在设计和实现类的继承关系时,能够保持程序的稳定性和一致性。通过理解和遵循这个原则,开发者可以构建更加健壮和灵活的系统。

    C#面向对象设计模式与原则

    首先,让我们了解面向对象设计的基本原则,它们包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)。这些原则指导我们如何编写高质量的、易于维护的代码。 1. 单一...

    Adaptive Code via C#

    - **里氏替换原则的作用**:讨论了遵循里氏替换原则对于确保继承结构合理性和程序稳定性的重要性。 - **设计示例**:提供了几个设计实例来说明如何正确应用里氏替换原则。 #### 总结 《Adaptive Code via C#: 敏捷...

    浅谈C#六大设计原则

    里氏替换原则(Liskov Substitution Principle,LSP)指出,子类对象应当能够在任何父类出现的地方无缝替换,而不影响程序的正确性。这意味着子类必须完全实现父类的所有方法,并且这些方法的行为在逻辑上保持一致。...

    Adaptive code via C#

    SOLID是五个面向对象设计原则的首字母缩写,分别是单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。单一职责原则强调一个类应该只有一个改变的理由;开闭原则提倡软件实体应对扩展开放,对修改...

    24种设计模式C#版

    2、里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】:继承与派生的规则.(子类可替换父类) 3、依赖倒转原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该...

    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则

    3. 里氏替换原则(LSP):子类型必须能够替换其基类型,而不影响程序的正确性。这保证了继承的稳定性。 4. 接口隔离原则(ISP):客户端不应该被迫依赖它不使用的方法。接口应该尽可能小且具体,避免过大的接口导致...

    C#面向对象练习进阶

    此外,面向对象设计原则,如SOLID原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则),也是学习进阶的重要部分。遵循这些原则可以使代码更易于维护、扩展和测试。 总之,“C#面向对象练习...

    C#设计模式(中文,PDF)

    C#设计模式涵盖了许多经典的设计原则,如单一职责原则(Single Responsibility Principle, SRP)、开闭原则(Open-Closed Principle, OCP)、里氏替换原则(Liskov Substitution Principle, LSP)、接口隔离原则...

    设计模式之六大原则详解,Markdown笔记

    详细介绍了设计模式六大原则,配有示例代码和图片,有开闭原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则等等。

    c# OOP/OOD

    1. **SOLID原则**:SOLID是五个面向对象设计原则的首字母缩写,包括单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则指导我们编写可维护、可扩展的代码。 2. **设计模式**:设计模式是...

    C#面向对象设计模式视频01

    6. **面向对象设计原则**:包括单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)等。这些原则指导我们编写出更灵活、可维护的代码。 通过学习这个系列...

    Effective C# 50 Specific Ways to Improve Your C#

    书中阐述了SOLID原则(单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则),以及工厂模式、单例模式、策略模式等常用设计模式,引导读者设计出结构清晰、易于扩展的系统。 ### 6. 测试和调试...

    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则.zip

    里氏替换原则(LSP)强调子类型必须能够替换掉它们的父类型,这有助于确保系统的正确性和一致性。接口隔离原则(ISP)建议我们应该设计细粒度的接口,从而减少不必要的依赖关系,提高系统的灵活性。最后,依赖倒置...

    C#面向对象程序设计讲义

    此外,面向对象设计原则如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP)也是C#编程中应遵循的重要指导方针。这些原则有助于提高代码的可读性、可维护性和...

    C#设计模式大全

    而里氏代换原则(LSP)则确保子类型可以替换其基类型而不影响程序的正确性。 #### 三、设计原则 - **开放-封闭原则(OCP)**:软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。 - **里氏代换原则(LSP)*...

Global site tag (gtag.js) - Google Analytics