c#之多态,抽象类,开放/关闭原则

C# 提供了两种技术来实现静态多态性

  • 函数重载
  • 运算符重载

动态多态性

  • 抽象类
  • 虚方法

抽象类

1、抽象类中的抽象属性和抽象方法必须是公有的,因此必须有public修饰符
2、子类必须override抽象类中的所有抽象属性和抽象方法,如果没有全部override,那么子类必须是抽象类
3、抽象类中可以有非抽象属性和非抽象方法,也可以是私有或者公有,但是如果是私有的话子类就不能访问,无意义,所以一般情况下都设置为公有
4、有抽象方法或抽象属性的类一定是抽象类,抽象类中的属性或方法不一定都是抽象的

纯虚类,纯虚方法就符合了开放/关闭原则

由纯虚类,纯虚方法即抽象类 抽象方法  成了接口  interface

原文地址:https://www.cnblogs.com/LZJJG/p/12665018.html

时间: 2024-08-30 17:59:00

c#之多态,抽象类,开放/关闭原则的相关文章

开放-封闭原则

开放-关闭原则:是说软件实体(类.模块.函数等等)应该可以扩展,但是不可修改[ASD].这其实说明了两个特征,一个是"对于扩展是开放的(Open for extension)",另一个是"对于更改是封闭的(Closed for modification)"[ASD]. 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况.对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改. 开放-封闭原则是面向对象设计的核心所在.

敏捷软件开发 – OCP 开放-封闭原则

软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改的. 如果程序中的一处改动就会产生连锁反应,导致一系列相关模块的改动,那么设计就具有僵化性的臭味.OCP建议我们应该对系统进行重构,这样以后对系统再进行这样那样的改动时,就不会导致更多的修改.如果正确地应用OCP,那么以后再进行同样的改动时,就只需要添加新的代码,而不必改动已经正常运行的代码. OCP概述 遵循开放-封闭原则设计出的模块具有两个主要的特征.它们是: 对于扩展是开放的(open for extension).这意味着模块的行

开放封闭原则(Open Closed Principle,OCP)

软件实体应该是可扩展的,而不可修改的.也就是,对扩展开放,对修改封闭的 开放封闭原则主要体现在两个方面: 1.对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况. 2.对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改. 实现开开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定. 让类依赖于固定的抽象,所以修改就是封闭的: 而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新

面象对象设计6大原则之二:开放封闭原则

定义 一个软件的实体,包括类.方法.模块.应该对扩展开放,对修改关闭. 也就是说一个软件的实体应该通过扩展的方式来修改变化,而不是修改已有实体源代码. 开放封闭原则也是最基本需要遵守的原则,我们应该尽量保证系统的稳定性,我们在实现另外一个功能的时候不能修改之前已有的代码以免造成之前的功能出现BUG,带来不必要的麻烦,所以开放封闭原则正是引导我们去设计一个稳定.方便扩展的系统. 在实际应用中我们一般会有以下几种做法保证开放封闭原则: 1.抽象出一个接口或者抽象类,定义公共的方法,达到扩展的目的.实

[Python设计模式] 第3~5章 单一职责原则/开放-封闭原则/依赖倒转原则

单一职责原则 就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 软件设计真正要做的许多内容,就是发现职责并把哪些职责相互分离.如果你能够想到多余一个的动机去改变一个类,那么这个类就具有多余一个的职责,就应该考虑类的职责分离. 开放-封闭原则 开放-封闭原则,是说软件实体(类,模块,函数等)应该可以扩展,但是不可修改.即对

三、单一职责原则、开放-封闭原则、依赖倒转原则

一.单一职责原则 1.定义:就一个类而言,应该仅有一个引起它变化的原因. 2.为什么要?:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 3.软件设计真正要做的许多内容,就是发现职责并把职责相互分离. 如果你能想到多余一个动机去改变一个类,那么这个类就具有多于一个原则. 4.示例:设计俄罗斯方块的游戏 可以分为游戏逻辑和界面表示逻辑. 游戏逻辑--数组每一项的值改

设计模式 之 设计的 六大原则(6) 开放封闭原则

  开放封闭原则  定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 问题由来:在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试. 解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化. 开闭原则是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统.开闭原则可能是设计模式六项原则中定义最模糊的一个了,

开放封闭原则

What 开放封闭原则(Open-Closed Principle:OCP),对于扩展是开放的,对于修改是封闭的.软件设计的目标:封装变化.降低耦合,而OCP正是这目标最直接的提现之一. Why OCP优点就是不会对已有的代码造成影响,减小测试的范围,以及代码的稳定性. How 下面不符合OCP的设计,为什么这样说:如果银行业务需要增加其他的功能,比如转账业务,那么我们需要修改BankProcess类,违反了对于修改是封闭的 class BankProcess { //存款 public voi

开放封闭原则(Open Closed Principle)

在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)","使用运行时类型识别(RTTI:Run Time Type Identification,例如 dynamic_cast)是危险的" 等等.那么,这些思想的源泉是什么?为什么它们要这样定义?这些思想总是正确的吗?本篇文章将介绍这些思想的基础:开放封闭原则(Open Closed Princi