继承:

  是c#中面向对象一个重要概念:

    用一个已经存在的类去定义一个新的类

      新的类叫做   子类/派生类

      已经存在的类叫做   父类/基类

  c#中所以类的最终基类都是Object类

  声明

  访问修饰符  class  派生类名:基类名{

  }

  特性:

    1.一个类只可以继承一个基类

    2.派生类拥有基类的所以属性和方法

    3.基类的成员不允许子类访问,子类是无法访问的

    4.子类会默认调用父类的默认构造函数

    

  访问修饰符

    1.protected 继承

    2. internal 本程序集(类和结构体的默认访问修饰符)

    引用其他程序集,使用using 关键字

    也可以直接通过dot语法,找到对应的命名空间. 类名

  命名空间

    同一个命名空间下的东西不能重名,可以直接调用

    不同命名空间下的类可以重名,所以 可以用命名空间来区分不同的代码

  this 和 base  

    this关键字指向自身或者自身构造函数

    base关键字指向父类的实例或者父类的构造函数

  new

     1.实例化一个对象

     2.为子类的成员申请一个新的空间

     如果子类中有成员与父类中的成员重名,可以用new关键字为子类中这个成员

      申请一个新空间,以便于计算机识别,如果不写,将默认启用new

  里氏转化原则

    1.子类可以当做父类去使用(因为子类拿到了父类的所有内容)

    2.父类变量可以装载子类,甚至可以强制转换成子类对象去使用(因为父类盒子里装的就是子类的内容)

    is :判断这个变量是否能转换成对应类型,如果可以,返回t,否则返回f

    as:尝试转换,如果能,返回转换过后的对象,如果不能,返回null

    is和as 要搭配使用,则要可以避免空引用报错

    

//如果父类对象中装的是子类,那么我们可以把它强转成子类类型,并且去使用
Prams x = new Pramsman();//new一个子类对象放到父类类型的 x 里 if(x is Pramsman )
{
Pramsman p1 = (x as Pramsman);
p1.WatchMovie();
}

  

c#继承 里氏转化原则的更多相关文章

  1. .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串

    1.继承(1)创建子类对象的时候,在子类对象中会为子类对象的字段开辟空间,也会为父类的所有字段开辟空间,只不过父类私有的成员访问不到(2)子类从父类继承父类所有的非私有成员,但是父类的所有字段也会创建 ...

  2. 里氏替换原则LSP(继承规范)

    继承的优点: 1.代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性. 2.提高代码的重用性. 3.子类可以形似父类,但又异于父类. 4.提高代码的可扩展性,实现父类的方法就可以“为所欲为” ...

  3. [OOD]违反里氏替换原则的解决方案

    关于OOD中的里氏替换原则,大家耳熟能祥了,不再展开,可以参考设计模式的六大设计原则之里氏替换原则.这里尝试讨论常常违反的两种形式和解决方案. 违反里氏替换原则的根源是对子类及父类关系不明确.我们在设 ...

  4. 【C#小知识】C#中一些易混淆概念总结(六)---------解析里氏替换原则,虚方法 分类: C# 2014-02-08 01:53 1826人阅读 评论(0) 收藏

    目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...

  5. 面向对象五大原则_1.单一职责原则&2.里氏替换原则

    单一职责原则:Single Responsibility Principle (SRP) 一个类.仅仅有一个引起它变化的原因.应该仅仅有一个职责.每个职责都是变化的一个轴线.假设一个类有一个以上的职责 ...

  6. 设计模式之里氏代换原则(LSP)

    里氏代换原则(Liskov Substitution Principle, LSP) 1 什么是里氏代换原则 里氏代换原则是由麻省理工学院(MIT)计算机科学实验室的Liskov女士,在1987年的O ...

  7. 里氏替换原则(Liskov Substitution Principle)

    开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础.它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码. ...

  8. 第2章 面向对象的设计原则(SOLID):2_里氏替换原则(LSP)

    2. 里氏替换原则(Liskov Substitution Principle,LSP) 2.1 定义 (1)所有使用基类的地方必须能透明地使用子类替换,而程序的行为没有任何变化(不会产生运行结果错误 ...

  9. 2.里氏替换原则(Liskov Substitution Principle)

    1.定义 里氏替换原则的定义有两种,据说是由麻省理工的一位姓里的女士所提出,因此以其名进行命名. 定义1:如果对一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1所定义的程序P中在o1全都 ...

随机推荐

  1. 使用mint-ui中弹框组件与原生弹框阻止父页面不滑动方法

    1,使用mint-ui框架中<mt-popup></mt-popup>,在组件中加入 lockScroll="true" 阻止父页面不滑动. 2,原生弹框中 ...

  2. 主机连接虚拟机的mysql 记录

    检查远程的虚拟机是否可以ping通过 查看虚拟机IP为192.168.38.128 cmd窗口ping 192.168.38.128,出现如下界面说明是可以的 检查虚拟机mysql的端口号是否对外开通 ...

  3. python -- 字典 集合

    1.字典          定义:字典是以 key :value 的形式来保存数据,用{} 来表示,存储的是 key : value        查找效率比较高(注:字典存储数据时,用的是hash值 ...

  4. Mosquitto-1.5在Linux上的安装以及Android客户端的实现

    一.关于MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的" ...

  5. Java面试(一) -- 基础部分(1)

    1 .一个".java" 源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一致.. ...

  6. springcloud学习计划

    后续参考学习spring cloud https://blog.csdn.net/forezp/article/details/70148833 https://github.com/forezp/S ...

  7. 扫描工具——Nmap用法详解

    Nmap使用 Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp. Nmap可以完成以下任务: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 Nmap在实际中应 ...

  8. @Configuration的使用

    以下内容转载自:duanxz的spring4.0之二:@Configuration的使用,如有侵权,请联系作者本人予以删除 从Spring3.0,@Configuration用于定义配置类,可替换xm ...

  9. Mondrian辅助组件----Schema WorkBench(架构平台简介)

    Schema WorkBech 是Pentaho套件的另一个组件,是mondrian中schema文件生成工具.通过Schema WorkBench我们可以快速生成一个schema文件,不再需要手写. ...

  10. rod cutting

    for a rod of length i the price of it si pi,to cut the rod to earn more money package dynamic_progra ...