面向对象概念-子类和子类型
来源:互联网 发布:china linux 编辑:程序博客网 时间:2024/06/05 15:36
提到“子类”和“子类型”是不同的,替换原则只适合于子类型关系,而一般编程语言只是考虑了子类关系,子类说明了新类是继承自父类,而子类型强调的是新类具有父类一样的行为(未必是继承)。那么,什么时候才应该使用继承?那就是符合子类型关系的时候,或者一般所说的”is a"关系,你必须保证新类的行为与父类完全一致!!!在任何使用父类的场合,新类应该表现一样的行为。
经典案例:正方形是长方形的子类,但不是子类型
如果让正方形当做是长方形的子类,会出现什么情况呢?我们让正方形从长方形继承,然后在它的内部设置width等于height,这样,只要width或者height被赋值,那么width和height会被同时赋值,这样就保证了正方形类中,width和height总是相等的.现在我们假设有个客户类,其中有个方法,规则是这样的,测试传人的长方形的宽度是否大于高度,如果满足就停止下来,否则就增加宽度的值.现在我们来看,如果传人的是基类长方形,这个运行的很好.根据LSP,我们把基类替换成它的子类,结果应该也是一样的,但是因为正方形类的width和height会同时赋值,这个方法没有结束的时候,条件总是不满足,也就是说,替换成子类后,程序的行为发生了变化,它不满足LSP.(里氏代换原则)
- 面向对象概念-子类和子类型
- 【面向对象】----概念--创建对象,匿名对象,类类型
- 【面向对象】----概念--创建对象,匿名对象,类类型2
- 提到“子类”和“子类型”是不同的
- 面向对象编程概念和准则
- 面向对象概念:字段、属性和方法
- 面向对象概念:重载和覆盖
- 面向对象核心思想和概念
- 面向对象和模式概念篇
- 面向对象编程的概念和原理
- 问题和练习:面向对象的概念
- Python面向对象,子类,继承
- c++面向对象和c面向过程的一些概念
- 父对象和子对象---(OC面向对象--多态)
- 父对象和子对象---(OC面向对象--多态)
- 面向对象开发中的核心思想和概念-对象
- php面向对象基础概念(对象和类)
- 面向对象程序设计概念
- 软件工程的疑惑
- 读书笔记之:Advanced Linux Programming
- kaiti
- 字符编码的基础知识
- Postgres的小命令
- 面向对象概念-子类和子类型
- ip命令手册(四)
- Blog访问量突破50000,谢谢大家捧场
- 赚钱难 赚钱易 努力就有收获
- Java中从标准控制台输入一个整数
- NT AUTHORITY/LOCAL SERVICE
- JFS侵入PCWEEK-LINUX主机的详细过程
- 聊天室的攻防技巧
- PB数据窗口的研究(1)