黑马程序员技术交流社区
标题:
求助求助
[打印本页]
作者:
有你珍贵
时间:
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