- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承、多态、接口、异常讲述
一、继承
面向对象的三大特征:封装、继承、多态
1、定义:
继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法。继承最基本的作用就是使得代码课重用,增加软件的可扩充性。
2、语法:
访问修饰符 class 子类名 extends 父类名{}
3、注意:
子类不能继承父类的构造方法、private成员和子类与父类不同包且使用默认访问权限的成员。
每个类只能有一个直接父类。
4、特点:
可以继承public和protected修饰的属性和方法,不论子类和父类是否在同一个包里。
可以继承默认访问修饰符修饰的属性和方法,但是子类和父类必须在同一个包里
无法继承父类的构造方法(可以通过super关键字调用,且调用时必须是子类构造方法的第一句)。
继承表达的是“**is a**”的关系。
可以使用super关键字调用父类成员:super只能出现在子类的方法和构造方法中,可以访问父类的属性、方法、构造方法;
继承是多态的基础,没有继承就没有多态。
5、补充:访问修饰符
本类 同包 子类 其他 private √ 默认的(Friendly) √ √ protected √ √ √ public √ √ √ √ 注:protected:不同包中只有实例化子类的对象可以调用protected成员。
6、实例化子类对象
子类在实例化时,会首先执行其父类的构造方法,然后才执行子类的构造方法。
一个类的构造方法在两种情况中总是会执行:创建该类的对象和创建该类的子类的对象。
子类继承父类时构造方法的调用规则:
如果子类的构造方法中没有通过super调用父类的有参构造方法,也没有通过this调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。
如果子类的构造方法中通过super调用父类的构造方法,那么将执行父类相应的构造方法。
如果子类的构造方法中通过this调用自身的其他构造方法,在相应构造方法中应用以上两条规则。
7、方法的重写
如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写即覆盖。
要求:
发生的两个类中(子类重写父类的方法);
方法名必须相同;
必须具有相同的参数列表(类型和个数);
返回值类型必须相同或者是其子类;
重写的方法的访问权限不能小于原方法的访问权限。
注:构造方法不能重写
8、方法重写和方法重载的区别与联系
位置 方法名 参数表 返回值 访问修饰符 方法重写 子类 相同 相同 相同或是其子类 不能严于父类 方法重载 同类 相同 不同 无关 无关 9、final关键字
Final类不能被继承
Final方法不能被重写
Final属性不能被修改,且必须有初始值
二、抽象方法和抽象类
1、定义:
当一个类的方法被abstract关键字修饰时,该方法称为抽象方法,抽象方法所在的类必须定义为抽象类。
2、语法:
抽象方法:访问修饰符 abstract 返回类型 方法名(参数列表);
抽象类:abstract class 类名{}
3、特点
抽象方法和抽象类需要用abstract修饰;
抽象方法没有方法体,抽象类不能实例化;
抽象方法必须在抽象类里面,而抽象类中可以包含抽象方法,也可以包含普通类的一切成员;
如果父类是抽象类,那么其所有的抽象方法必须在子类中实现(通过重写),除非子类也是抽象类;
Abstract修饰符不能喝final修饰符一起用;
Private关键字不能修饰抽象方法。
三、多态
1、定义:
在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能自动地调用引用的对象的方法。方法重写是实现多态的基础。
2、2个要素:子类重写父类方法、使用父类类型
3、向上转型(自动类型转换):
子类到父类的转换
语法:父类型 引用变量名 = new 子类型();
此时通过父类引用变量调用的方法时子类覆盖或继承父类的方法,不是父类的方法;
此时通过父类引用变量无法调用子类特有的方法。
4、向下转型(强制类型转换):
父类类型转换为子类类型
语法:子类型 引用变量名 = (子类型)父类型的引用变量
Instanceof运算符:对象类型必须和其后面的参数所指的的类在继承上有上下级关系。通常和强制类型转换结合使用,判断其真实子类类型。
5、优点
可替换性
可扩充性
接口性
灵活性
简化性
6、应用形式:
使用父类作为方法的形参
使用父类作为方法的返回值
四、接口
1、初识接口
接口可以看做一种特殊的抽象类,接口是一个不能实例化的类型,它里面的所有方法都是抽象方法。
2、语法
接口定义语法:
Public interface 接口名{
//接口成员
}
实现接口语法:
P
文档评论(0)