




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、继承面向对象的三大特征:封装、继承、多态1、定义: 继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法。继承最基本的作用就是使得代码课重用,增加软件的可扩充性。2、语法:访问修饰符 class 子类名 extends 父类名3、注意:l 子类不能继承父类的构造方法、private成员和子类与父类不同包且使用默认访问权限的成员。l 每个类只能有一个直接父类。4、特点:l 可以继承public和protected修饰的属性和方法,不论子类和父类是否在同一个包里。l 可以继承默认访问修饰符修饰的属性和方法,但是子类和父类必须在同一个包里l 无法继承父类的构造方法(可以通过super关键字调用,且调用时必须是子类构造方法的第一句)。l 继承表达的是“*is a*”的关系。l 可以使用super关键字调用父类成员:super只能出现在子类的方法和构造方法中,可以访问父类的属性、方法、构造方法;l 继承是多态的基础,没有继承就没有多态。5、补充:访问修饰符本类同包子类其他private默认的(Friendly)protectedpublic注:protected:不同包中只有实例化子类的对象可以调用protected成员。6、实例化子类对象l 子类在实例化时,会首先执行其父类的构造方法,然后才执行子类的构造方法。l 一个类的构造方法在两种情况中总是会执行:创建该类的对象和创建该类的子类的对象。l 子类继承父类时构造方法的调用规则:如果子类的构造方法中没有通过super调用父类的有参构造方法,也没有通过this调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。如果子类的构造方法中通过super调用父类的构造方法,那么将执行父类相应的构造方法。如果子类的构造方法中通过this调用自身的其他构造方法,在相应构造方法中应用以上两条规则。7、方法的重写 如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写即覆盖。要求: 发生的两个类中(子类重写父类的方法); 方法名必须相同; 必须具有相同的参数列表(类型和个数); 返回值类型必须相同或者是其子类; 重写的方法的访问权限不能小于原方法的访问权限。注:构造方法不能重写8、方法重写和方法重载的区别与联系位置方法名参数表返回值访问修饰符方法重写子类相同相同相同或是其子类不能严于父类方法重载同类相同不同无关无关9、final关键字l Final类不能被继承l Final方法不能被重写l Final属性不能被修改,且必须有初始值二、抽象方法和抽象类1、定义:当一个类的方法被abstract关键字修饰时,该方法称为抽象方法,抽象方法所在的类必须定义为抽象类。2、语法:抽象方法:访问修饰符 abstract 返回类型 方法名(参数列表);抽象类:abstract class 类名3、特点l 抽象方法和抽象类需要用abstract修饰;l 抽象方法没有方法体,抽象类不能实例化;l 抽象方法必须在抽象类里面,而抽象类中可以包含抽象方法,也可以包含普通类的一切成员;l 如果父类是抽象类,那么其所有的抽象方法必须在子类中实现(通过重写),除非子类也是抽象类;l Abstract修饰符不能喝final修饰符一起用;l Private关键字不能修饰抽象方法。三、多态1、定义: 在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能自动地调用引用的对象的方法。方法重写是实现多态的基础。2、2个要素:子类重写父类方法、使用父类类型3、向上转型(自动类型转换):l 子类到父类的转换l 语法:父类型 引用变量名 = new 子类型();l 此时通过父类引用变量调用的方法时子类覆盖或继承父类的方法,不是父类的方法;l 此时通过父类引用变量无法调用子类特有的方法。4、向下转型(强制类型转换):l 父类类型转换为子类类型l 语法:子类型 引用变量名 = (子类型)父类型的引用变量l Instanceof运算符:对象类型必须和其后面的参数所指的的类在继承上有上下级关系。通常和强制类型转换结合使用,判断其真实子类类型。5、优点 可替换性 可扩充性 接口性 灵活性 简化性6、应用形式:使用父类作为方法的形参使用父类作为方法的返回值四、接口1、初识接口 接口可以看做一种特殊的抽象类,接口是一个不能实例化的类型,它里面的所有方法都是抽象方法。2、语法接口定义语法:Public interface 接口名/接口成员实现接口语法:Public 类名 implements 接口名实现方法普通方法接口继承接口:修饰符 interface 接口名 extends 父接口1,父接口2,.常量定义方法定义同时继承抽象类和实现多个接口语法:Class 类名 extends 父类名 implements 接口1,接口2,.类的成员3、特点l 定义接口用interface修饰符,访问修饰符只能是public;l 接口要使用必须通过子类,子类通过implements关键字实现接口;l 实现接口的类必须实现接口中定义的所有抽象方法,接口的实现类可以包含普通方法;l 接口和抽象类一样不可以被实例化;l 实现类可以实现多个接口;l 接口中的成员只能是全局常量和公共的抽象方法;l 接口是一种能力,体现在接口的方法上(as . a);l 一个类只能继承一个父类,但恩给你同时实现多个接口,也可以同时继承抽象类和实现接口;l 可以切换实现类。4、注意l 接口和类、抽象类是一个层次的概念,命名规则相同;l 修饰符只能是public,该接口在整个项目可见,如果省略修饰符,则只在当前包可见;l 接口中不能定义变量,所有的属性都默认用“public static final”修饰且必须在定义时赋初始值不能更改;l 接口中的所有方法都是抽象方法,都默认为public;l 接口不能被实例化,不能有构造方法;l 接口之间通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类,类可以实现多个接口,但只能继承一个类;l 一个类必须实现其接口的全部方法,除非为抽象类;l 一个类在继承父类的同时又实现了多个接口时,extends必须位于implements之前。五异常try catch finally throw throws每个变量在使用前要判断其有效性1、定义 异常就是在程序的运行过程中所发生的不正常事件,如所需文件找不到、网络连接不通或中断、算术运算出错、数组下标越界、装载一个不存在的类、对null对象操作、类型转换异常等。异常会中断正在运行的程序。2、try-catchpublic void method()try / 代码段 1 / 产生异常的代码段 2 / 代码段 3 catch (异常类型 ex) / 对异常进行处理的代码段4/ 代码段5使用try-catch处理异常:可能出现的三种情况1) 如果try语句块中的所有语句正常执行完毕,不会发生异常,那么catch语句块总的所有语句都将会被忽略。2) 如果try语句块在执行过程中发生异常,并且与catch语句块中声明的异常类型想匹配,那么在try语句块中剩下的代码被忽略,而相应的catch语句块将会被执行。匹配是值catch所处理的异常类型与所生成的异常类型一致或是它的父类。3) 如果try语句块在执行过程中碰到异常,而抛出的异常在catch语句块中没有被声明,那么方法立刻退出。3、try-catch-finallypublic void method()try / 代码段 1 / 产生异常的代码段 2 catch (异常类型 ex) / 对异常进行处理的代码段3 return;finally / 代码段 4使用try-catch-finally处理异常的两种情况:1) 如果try语句块中所有语句块正常执行完毕,那么finally语句块就会被执行。2) 如果try语句块在执行过程中碰到异常,无论这种异常能否被catch捕捉到,都将执行finally语句块中的代码。注意:finally语句块总的语句就算存在return语句也会执行,执行顺序是执行try语句块或catch语句块中return之前的语句,执行finally语句,执行return退出。Finally语句块中的语句不执行的唯一情况是在异常处理代码中执行System.exit(1)退出Java虚拟机。4、多重catchpublic void method()try / 代码段 / 产生异常(异常类型2) catch (异常类型1 ex) / 对异常进行处理的代码段 catch (异常类型2 ex) / 对异常进行处理的代码段 catch (异常类型3 ex) / 对异常进行处理的代码段/ 代码段排列顺序为子类到父类,最后一个一般都是exception类。运行时,系统从上到下分别对每个catch语句块处理的异常类型进行检测,并执行第一个与异常类型匹配的catch语句。执行其中的一条catch语句后,其后的catch语句将被忽略。5、使用throws声明抛出异常Throws可以同时声明多个异常,之间由逗号隔开。6、使用throw抛出异常l Throw用于程序员自行产生并抛出异常,throws用于声明该方法内抛出了异常;l Throw位于方法体内部,可以作为单独的语句使用,throws必须跟在方法参数列表的后面,不能单独使用;l Throw抛出一个异常对象,且只能一个,throws后面跟异常类,且可以跟多个异常类。7、 异常对象常用的方法在catch语句中可以加入用户自定义处理信息,也可以调用异常对象的方法输出异常信息,常用方法如下: Void printStackTrace():输出异常的堆栈信息包括程序运行到当前类的执行流程,它将输出熊方法调用处到异常抛出处的方法调用序列。 String getMessage():返回异常信息描述字符串,该字符串描述异常产生的原因,是printStackTrace()输出信息的一部分。8、常见的异常类型异常类型说明Exception异常层次结构的父类ArithmeticException算术错误情形,如以零作除数ArrayIndexOutOfBoundsException数组下标越界NullPointerException尝试访问null对象成员Cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议中财产自愿归零及净身出户具体协议
- 公务员申论培训咨询服务合同
- 职业院校国有资产管理绩效评价
- 考研准备中的技巧和方法
- 心理干预措施报告
- 共轴双旋翼模型的建立
- 农业文化传播与品牌建设成效
- 2025浙江宁波慈溪市周巷职业高级中学招聘派遣制教师3人笔试备考试题及答案解析
- 天然气价格测算制度
- 如何用香熏养生保健身体
- 包装车间基础知识培训课件
- 双胎妊娠护理查房
- 2025年浙江省中考语文试题卷(含答案解析)
- 2025年副科级警察面试题及答案
- 2025 呼吸内科查房肺康复评估工具课件
- 2025年公安警察、辅警招聘知识考试题(附含答案)
- 2025年贵州建筑中级试题及答案
- 收银奖惩管理办法
- 浙江摆摊管理办法
- 古代服饰复原与租赁服务创新创业项目商业计划书
- 机械设计部绩效考核制度
评论
0/150
提交评论