博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#继承 里氏转化原则
阅读量:4629 次
发布时间:2019-06-09

本文共 1037 字,大约阅读时间需要 3 分钟。

继承:

  是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();}

 

  

 

转载于:https://www.cnblogs.com/DGJS/p/10277081.html

你可能感兴趣的文章
第44章:MongoDB-集群--Sharding(分片)--分片的片键选择
查看>>
自定义ISO结构
查看>>
7.11 animals.c 程序
查看>>
java Web三大组件--过滤器
查看>>
使用NUnit为游戏项目编写高质量单元测试的思考
查看>>
Uva 1638 Pole Arrangement
查看>>
Java内存泄漏
查看>>
逻辑函数的代数化简法
查看>>
第十一周PSP&进度条
查看>>
hdu 1501 DFS+记忆化搜索
查看>>
试说移动端是如何调试的?
查看>>
常用正则表达式!
查看>>
用JAVA生成老电影海报
查看>>
数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用
查看>>
怎样退出App之前唤醒还有一个App?
查看>>
-bash:jps:command not found
查看>>
cogs 998. [東方S2] 帕秋莉·诺蕾姬
查看>>
BZOJ 1019: [SHOI2008]汉诺塔
查看>>
jquery ocupload一键上传文件应用
查看>>
Java并发编程-看懂AQS的前世今生
查看>>