




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京传智播客教育 ,继 承(下),毕向东,北京传智播客教育 ,4 继承(下),4.7 抽象类 4.8 接口,北京传智播客教育 ,4.7 抽象类,4.7.1 抽象类概述 4.7.2 抽象类的特点 4.7.3 抽象类举例代码讲解 4.7.4 抽象类相关问题,北京传智播客教育 ,4.7.1 抽象类概述,抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来。 例如:狼和狗共性都是犬科,犬科就是抽象出来的概念。 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。 抽象方法的由来: 多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。 例如:狼和狗都有吼叫的方法,可是吼叫内容是不一样的。所以抽象出来的犬科虽然有吼叫功能,但是并不明确吼叫的细节。,北京传智播客教育 ,4.7.2 抽象类的特点,抽象类和抽象方法必须用abstract关键字来修饰。 抽象方法只有方法声明,没有方法体,定义在抽象类中。 格式:修饰符 abstract 返回值类型 函数名(参数列表) ; 抽象类不可以被实例化,也就是不可以用new创建对象。原因如下: 抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实例。例如:犬科是一个抽象的概念,真正存在的是狼和狗。 而且抽象类即使创建了对象,调用抽象方法也没有意义。 抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也是抽象类。,北京传智播客教育 ,4.7.3 抽象类举例代码讲解,老师示例,根据给出内容设计继承体系 具体事物:基础班老师,就业班老师 共性:姓名,所属教室,讲课。 学员示例(练习) 具体事物:基础班学员,就业班学员 共性:姓名,学习,休假。 雇员示例: 需求:公司中程序员有姓名,工号,薪水,工作内容。 项目经理除了有姓名,工号,薪水,还有奖金,工作内容。 对给出需求进行数据建模。,北京传智播客教育 ,4.7.4 抽象类相关问题,抽象类中是否有构造函数? 抽象关键字abstract不可以和哪些关键字共存? 抽象类中可不可以没有抽象方法?,北京传智播客教育 ,4.8 接口,格式: interface 接口中的成员修饰符是固定的。 成员常量:public static final 成员函数:public abstract 接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。,北京传智播客教育 ,4.8.1 接口的特点,接口是对外暴露的规则。 接口是程序的功能扩展。 接口可以用来多实现。 类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。 接口与接口之间可以有继承关系。,北京传智播客教育 ,4.9 多态,定义:某一类事物的多种存在形态。 例:动物中猫,狗。 猫这个对象对应的类型是猫类型 猫 x = new 猫(); 同时猫也是动物中的一种,也可以把猫称为动物。 动物 y = new 猫(); 动物是猫和狗具体事物中抽取出来的父类型。 父类型引用指向了子类对象。,北京传智播客教育 ,4.9 多态,体现: 父类或者接口的引用指向或者接收自己的子类对象。 作用: 多态的存在提高了程序的扩展性和后期可维护性 前提: 需要存在继承或者实现关系 要有覆盖操作,北京传智播客教育 ,多态的特点,成员函数: 编译时:要查看引用变量所属的类中是否有所调用的成员。 在运行时:要查看对象所属的类中是否有所调用的成员。 成员变量: 只看引用变量所属的类。,北京传智播客教育 ,内部类,将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。 访问特点: 内部类可以直接访问外部类中的成员,包括私有成员。 而外部类要访问内部类中的成员必须要建立内部类的对象。,北京传智播客教育 ,内部类的位置,内部类定义在成员位置上 可以被private static成员修饰符修饰。 被static修饰的内部类只能访问外部类中的静态成员。 内部类定义在局部位置上 也可以直接访问外部类中的成员。 同时可以访问所在局部中的局部变量,但必须是被final修饰的。,北京传智播客教育 ,匿名内部类,就是内部类的简化写法。 前提: 内部类可以继承或实现一个外部类或者接口。 格式为: new 外部类名或者接口名()覆盖类或者接口中的代码,(也可以自定义内容。) 简单理解: 就是建立一个建立一个带内容的外部类或者接口的子类匿名对象。,北京传智播客教育 ,异常,异常的体系 Throwable Error 通常出现重大问题如:运行的类不存在或者内存溢出等。 不编写针对代码对其处理 Exception 在运行时运行出现的一起情况,可以通过try catch finally Exception和Error的子类名都是以父类名作为后缀。,北京传智播客教育 ,Throwable中的方法,getMessage() 获取异常信息,返回字符串。 toString() 获取异常类名和异常信息,返回字符串。 printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。 printStackTrace(PrintStream s) 通常用该方法将异常内容保存在日志文件中,以便查阅。,北京传智播客教育 ,throws和throw,throws用于标识函数暴露出的异常。 throw用于抛出异常对象。 throws与throw的区别: thorws用在函数上,后面跟异常类名。 throw用在函数内,后面跟异常对象。,北京传智播客教育 ,异常处理,try 需要检测的代码; catch(异常类 变量) 异常处理代码; finally 一定会执行的代码; Finally代码块只有一种情况不会被执行。就是在之前执行了System.exit(0)。,北京传智播客教育 ,自定义异常,自定义类继承Exception或者其子类。 通过构造函数定义异常信息。 例: Class DemoException extends Exception DemoException(String message) super(message); 通过throw将自定义异常抛出。,北京传智播客教育 ,异常细节,RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。 一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类。 如果父类抛出多个异常,那么重写(覆盖)方法必须抛出那些异常的一个子集,不能抛出新的异常。 介绍异常在分层设计时的层内封装。 例程。,北京传智播客教育 ,包(package),对类文件进行分类管理。 给类提供多层命名空间。 写在程序文件的第一行。 类名的全称的是 包名.类名。 包也是一种封装形式。,北京传智播客教育 ,classpath,给JVM提供的一个环境变量。 指定类或者包所在的路径。 classpath变量值的最后有分号与无分号的区别。 思考:在开发时,分号是否需要呢?,北京传智播客教育 ,包之间的访问,被访问的包中的类权限必须是public的。 类中的成员权限:public或者protected protected是为其他包中的子类提供的一种权限 例程,北京传智播客教育 ,四种权限,北京传智播客教育 ,import,简化类名。 一个程序文件中只有一个package,可以有多个import。 用来导包中的类,不导入包中的包。 通常写import mypack.Demo; 而不写import mypack.*;为什么?,北京传智播客教育 ,Jar包,Java的压缩包 方便项目的携带。 方便于使用,只要在classpath设置jar路径即可。 数据库驱动,SSH框架等都是以jar包体现的。,北京传智播客教
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大型楼房拆除方案(3篇)
- DB23-T2824-2021-工业企业实验室危险化学品安全管理规范-黑龙江省
- 小型蒸酒设备管理制度
- 小区车辆录入管理制度
- 就业补助资金管理制度
- 农药兽药抽检管理制度
- 旧区电线改造方案(3篇)
- 花园修剪服务方案(3篇)
- 河堤渗水整治方案(3篇)
- 宾馆日常卫生管理制度
- GB/Z 44047-2024漂浮式海上风力发电机组设计要求
- 2024年江苏省南通市中考地理试题卷(含答案)
- 水南公寓(ABC)地块设计采购施工(EPC)总承包项目技术标
- 2024-2025学年八年级语文上册期末专项复习:散文阅读【考点清单】
- 新教科版小学1-6年级科学需做实验目录
- Linux Shell命令行及脚本编程实例详解
- 学习强安应急第一响应人理论考试答案
- 驻颜有术 知到智慧树网课答案
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 2023-2024学年八年级下期末数学试卷(附答案解析)
- 2024年徐州市六年级下学期期末抽测语文模拟试卷
评论
0/150
提交评论