java学习笔记:里氏代换原则的两个例子

(根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取
ExampleA类型异常的catch块能够抓住try块中抛出的ExampleB类型的异常)

package com.study.javastudy;class ExampleA extends Exception{}
class ExampleB extends ExampleA{ExampleB(String s){}
}public class TestExample {public static void main(String[] args) {try{throw new ExampleB("b");}catch(ExampleA e){System.out.println("ExampleA");}catch(Exception e){System.out.println("Exception");}}
}
/*** result:* ExampleA* (根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取ExampleA类型异常的catch块能够抓住try块中抛出的ExampleB类型的异常)*/

----

package com.study.javastudy;class Annoyance extends Exception {}
class Sneeze extends Annoyance {}public class Human {public static void main(String[] args)throws Exception {try {try {throw new Sneeze();}catch ( Annoyance a ) {System.out.println("Caught Annoyance");throw a;}}catch ( Sneeze s ) {System.out.println("Caught Sneeze");return ;}finally {System.out.println("Hello World!");}}
}
/*
* result:
Caught Annoyance
Caught Sneeze
Hello World!
(根据里氏代换原则[能使用父类型的地方一定能使用子类型]
* */

java学习笔记:里氏代换原则的两个例子相关推荐

  1. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  2. java与模式--里氏代换原则,依赖倒置原则

    一里氏代换原则 1.基类可以出现的地方,子类也可以出现. 2.子类可以替换基类出现的替换,软件的功能行为不改变,则基类可以复用,子类可以扩展基类的功能. 3.例子 <1>正方形继承长方形. ...

  3. java里氏替换原则例子_java设计模式学习笔记——里氏替换原则

    oo中的继承性的思考和说明 1.继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些七月,但是如果子类对这些已经实现的方法任意修改,就会对 ...

  4. 设计原则(3)-里氏代换原则

    本文转自:http://www.cnblogs.com/guoshiandroid/archive/2010/06/14/1758047.html 里氏代换原则 法海捉拿白蛇新解  应用场景举例: & ...

  5. Android大话设计模式 第四章----里氏代换原则----法海捉拿白蛇新解

    应用场景举例: <白蛇传>是中国四大民间传说之一,妇孺皆知. 在大多数人的感觉和印象中,白蛇是一个善良痴情.知恩图报.温柔友善.美貌绝伦.冰雪聪明.明辨是非.救苦救难的活菩萨:而法海却是一 ...

  6. 从零开始学习Java设计模式 | 软件设计原则篇:里氏代换原则

    在本讲中,我来为大家介绍一下软件设计原则里面的第二个原则,即里氏代换原则. 概述 首先,大家应该知道,里氏代换原则是面向对象设计的基本原则之一.那什么是里氏代换原则呢?里氏代换原则是指任何基类可以出现 ...

  7. Java设计原则之单一职责原则、开闭原则、里氏代换原则

    文章目录 面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 面向对象设计原则概述 软件的可维护性(Maintainability)和可复用性(Reusability)是两个非常重要的用于衡量 ...

  8. Java里氏转换_里氏代换原则、依赖倒转原则 | 学步园

    里氏代换原则 面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化,具体化也就是给出不同的实现. 继承关系就是一种从抽象化到具体化的导出. 里氏代换原则:如果对每一个类型为T1的对象o1,都有类 ...

  9. 里氏代换原则在Java以及设计模式中的体现

    ​里氏代换原则在Java中的体现 前面说了里氏代换原则,那么现在说一下里氏代换原则在Java中的使用. 里氏代换原则要求父类类型可以使用的,那么子类一定可以适用.因此子类必须具有基类的全部接口,并且可 ...

最新文章

  1. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境
  2. 实现一个全链路监控平台很难吗?一点都不难。。。
  3. SPP-Net 是怎么让 CNN 实现输入任意尺寸图像的?
  4. WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
  5. BaaS模式的开发思路
  6. 【Network Security!】入侵痕迹清除,修改系统日志
  7. python找工作难吗-为什么我不建议你通过 Python 去找工作?
  8. python multiprocessing — 基于进程的并行
  9. 科大星云诗社动态20210416
  10. fastjson list转json字符串_程序员:JSON、JSONObject 与 JSONArray 简单讲解
  11. TypeScript + React 学习render props
  12. 打开计算机管理时,提示找不到Apphelp.dll
  13. 法曲率、主曲率、平均曲率和高斯曲率
  14. 周礼键君:中国福建省建瓯市之《闽郡八音字典》
  15. [转]SAP模块一句话入门
  16. 禁止K8S容器内子进程拥有提升权限的能力
  17. 四川交通职业技术学院计算机二级,明天考计算机了。
  18. Ubuntu 下配置 Typora 图片上传到 smms
  19. 事件分发机制流程图,Android免打包多渠道统计如何实现?Android核心知识点
  20. DUL Oracle Data Unloader工具下载

热门文章

  1. 丰立智能在创业板上市:总市值达到33亿元,王友利夫妇为实控人
  2. 计算机网络第七版谢希仁
  3. 【数学建模】2023年华为杯第十九届研究生数学建模大赛E题
  4. 【机器学习】西瓜书目录
  5. C语言写电话通讯录(简洁版)(用的 VS2022)
  6. IDEA+Java+SSM+JSP+Mysql+Tomcat实现Web药品信息管理系统
  7. STM32F29显示中文汉字
  8. sony的故事 第 32 章
  9. 《MySQL:演示数据库文件》
  10. 【点击百度快照】基于MATLAB的运动车辆跟踪检测系统(GUI,视频读取)