黑马程序员技术交流社区

标题: 求助求助 [打印本页]

作者: 有你珍贵    时间: 2013-10-23 19:31
标题: 求助求助
本帖最后由 有你珍贵 于 2013-10-23 23:24 编辑

    今天学习了关于里氏转换.子类对象可以复制给父类。如果弗雷装的是子类的对象,这个父类就可以强转成子类对象。对这个还是有些疑惑,里氏转换到底有什么用处呢?求大神解答.不胜感激!

作者: 黑色海    时间: 2013-10-23 19:43
这个在winform中用到很多,事件执行方法有个参数叫sender,用里氏转换就能知道发生的事件从而执行不同的方法。
比如说,button1  和  button2   点击事件后执行的方法代码重复,但是又有一点区别,比如button1  的事件执行方法要求输出点击了button1,而button2的事件执行方法要求输出点击了button2.
这个时候用里氏转换,在输出内容中用变量参数来替代具体内容。
Button  btn=(Button)sender;
Console.WriteLine("点击了 {0}",btn);

作者: ˋ初°见    时间: 2013-10-23 20:13
里氏转换原则
        1. 子类对象可以直接赋值为父类变量
                父类 <父类变量> = new 子类();
                Person p = new Student();
                Student stu = new Student();
                Person p = stu;
        2. 指向子类对象的父类变量,可以强制类型转化为对应的子类对象
                Student stu1 = (Student)p;
        3. 意义就是为了实现多态。
        4. 面向对象的三大特性:继承 封装 多态 。
        继承是多态实现的前提,里氏转换时多态实现的条件

作者: 杨靖    时间: 2013-10-23 21:23
里氏转换就是:派生类(子类)对象能够替换其基类对象被使用
作者: §風過無痕§    时间: 2013-10-23 21:45
里氏转换在那节视频里呀?在学习的过程中我怎么没有遇见过呀?   面试那天老师问我这玩意儿!我居然连名称都不晓得




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2