父类:基类
子类:派生类
继承的概念:
1.传递性:子类能继承父类的所有方法、属性
2.单根性:类只能继承一个父类
继承的注意的问题:
1.创建子类对象的时候,会为子类与父类的对象的字段提供空间
2.父类不能继承子类
3.构造方法不能被继承,但是可以在子类用添加 base(指定引用)
4.子类能继承父类的属性与方法、但是私有的方法只能被继承,不能被使用
5.基本格式:
子类:父类 base("构造方法")
6.基本的访问修饰符
public 公开的类 任何都能访问
prive 私有的类 只能在类中进行访问
protected 受保护的类 只能在本类或者子类进行访问
二:里氏替换
概念:父类引用可以指向一个子类,看到的也只是父类的引用
2.里氏替换的原则:
父类不能替换成子类
子类能替换成父类
Parent p=new Son()
Son s=(Son)p; --正确
Parent p=new Parent()
Son s=(Son)p; --错误
注:因为继承的概念就是子孙类会越来越比祖先类详细,所以可以将子孙类强制转换成祖先类,因为祖先有的行为子孙类示例都有了(重新定义的或者是默认的);但是当将祖先类示例强制转换成子孙类示例的时候,一些子孙类有的行为祖先是没有的(即使的是默认的实现也没有)。

7.过程:创建子类的时候先条用子类的构造函数,然后再调用父类的构造函数
执行父类的构造函数后,再执行子类的构造函数。
1.父类引用能引用到子类的父类引用,可以看到,但是无法使用。
例:
a(父类引用)se(子类对象)=new se();
2.1 子类可以访问包括父类的引用以及自己的属性
se(子类) ss=new se();
3.如果需要父类访问到子类的字段,必须要转换
4.转换的方式有两种:
1.(子类类型) 父类引用 //会报错
2.父类引用 as 子类类型 //不会报错、但是会返回一个null值
5.判断父类的对象引用类型,父类引用 is 子类类型 并且返回一个布尔值
例:if(数组[i] is pe)
{

((pe)数组(I).方法/属性)
}

转载于:https://www.cnblogs.com/liyiyong/p/5050151.html

面向对象(二) 继承/里氏替换相关推荐

  1. 设计模式(二)--里氏替换原则(Java的继承规范)

    昨天有说到单一职责原则是针对接口的思维拓展,有没看过的,可以看看!https://blog.csdn.net/newlifemain/article/details/100184642 今天我们来看看 ...

  2. 【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )

    文章目录 一.里氏替换原则定义 二.里氏替换原则定义扩展 三.里氏替换原则引申意义 四.里氏替换原则意义 五.里氏替换原则优点 一.里氏替换原则定义 里氏替换原则定义 : 如果 对每一个 类型为 T1 ...

  3. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  4. 北风设计模式课程---里氏替换原则(Liskov Substitution Principle)

    北风设计模式课程---里氏替换原则(Liskov Substitution Principle) 一.总结 一句话总结: 当衍生类能够完全替代它们的基类时:(Liskov Substitution P ...

  5. java设计模式3,里氏替换原则

    目录 一.里氏替换原则定义 二.里氏替换原则的作用 三.违背原则场景 四.里氏替换原则改变代码 1.抽象人物类 2.哪吒子类 3.敖丙子类 五.关注公众号哪吒编程,回复1024,获取Java学习资料, ...

  6. Java设计原则——里氏替换原则

    我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习. 学习从来无捷径,循序渐进登高峰. 目录 一.基本介绍 二.应用实例 1.示例一 2.示例二 部分笔记来源于尚硅谷设计模式视频教学 ...

  7. 设计模式之里氏替换原则示例

    设计模式之里氏替换原则示例 里氏替换原则强调的是设计和实现要依赖于抽象而非具体:子类只能去扩展基类,而不是隐藏或者覆盖基类,它包含4层含义. 一.里氏替换4原则 1.子类可以实现父类的抽象方法,但不能 ...

  8. 【设计模式】里氏替换原则

    里氏替换原则 OO(Object Oriented,面向对象程式设计)中的继承性的思考和说明 继承包含这样一层含义∶父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有
的子类必 ...

  9. 设计模式:里氏替换原则(详解)

    里氏替换原则 前言 一. 介绍 二.代码演示 1.版本一:原始版本 2.版本二:里氏替换原则 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许 ...

最新文章

  1. android 判断网络是否可用
  2. Scrapy匹配xpath时tbody标签的问题
  3. 大数据翻页_【干货】大数据翻页的难点和技巧
  4. 在vue中使用SockJS实现webSocket通信
  5. Ubuntu Linux创建Hadoop用户
  6. Linux内核中的proc文件系统
  7. c语言编程单片机网线,【C语言】直播一下单片机编程
  8. oracle使用between and边界问题
  9. HTML PS 环境搭建,快捷键及简单图片处理(图片测量及抠取)
  10. 太乙超级计算机,从“启明”到“太乙”,南科大的超算发展之路
  11. android倒计时代码
  12. Hugepages详解
  13. 网络协议栈分析——从设备驱动到链路层
  14. 量子力学第十一弹——变分法
  15. STM32Cube学习(5)——PWM
  16. 小程序setData数据量大时,导致卡顿怎么解决
  17. Python Tox介绍和使用
  18. 白话数字签名(3)—Web程序中的数字签名
  19. 我以为是个正经程序猿,结果是个中二段子精
  20. 蓝桥杯单片机省赛——第五届(模拟智能灌溉系统)

热门文章

  1. eclipse没有Web分支Dynamic Web Project
  2. 第四十九篇、跳转设置界面
  3. spring this.logger.isDebugEnabled()
  4. Windows Phone开发手记-WinRT下启动器替代方案
  5. Uninstalling ASP.NET MVC 1.1 after installing Visual Studio 2010 beta 2
  6. 如果不是心中还有梦,又能忍住多少痛?
  7. 数据通过蓝牙传输中...70.46k/s
  8. discuz mysql data_discuz调取数据库数据
  9. 恢复出厂设置后itms注册失败_手机恢复出厂设置后,与新手机的区别已被确认,望大家相互转告!...
  10. 解决Ubuntu 16.04 SSH无法远程登录问题(使用root登录)