- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final关键字——阻止继承 语默制造 1) final 修饰成员变量: final修饰变量,则成为常量,例如 final type variableName; 修饰成员变量时,定义时同时给出初始值,而修饰局部变量时不做要求。 2) final 修饰成员方法: final修饰方法,则该方法不能被子类重写 final returnType methodName(paramList){ … } 3) final 类: final修饰类,也叫最终类说明这个类不可能有子类,最终类不能被别的类继承。 final class finalClassName{ … } Final的总结 语默制造 final关键字有最终、不变的意思,可以修饰成员变量,也可以修饰方法和类,通过final关键字的修饰可以改变其特性。 final关键字修饰类时,说明其类不能有子类,也就是说该类不能被继承,该类的成员变量在这里将不起作用。 final关键字修饰方法时,说明该方法不能被重写,因为类都不能继承了,方法就更不能重写了。 类里可以含有final关键字修饰的方法。 final关键字修饰的成员变量的对象引用不能修改。 final关键字修饰的类里的方法默认被修饰为final。 练习 语默制造 1.四种权限修饰符的不同点有哪些? 【提示】从基本定义中进行分析。public修饰符表明被它修饰的成员变量为公共类型,这样这个成员变量在任何包里都能访问,包括子类也能访问到。private表明被它修饰的成员变量为私有类型,表示除了本类外任何类都不能访问到这个成员变量,具有很好的保护性。如果不给成员变量添加任何修饰符,就表示这个成员变量被修饰为default类型,在同一个包里的类或子类是能够访问的,就相当于public类型,但是在不同包里的类或子类没有继承该成员变量,是访问不到的。protected表明被它修饰的成员变量为保护类型,在同一包里和public类型是一样的,也是能够访问到的,但是如果在不同包里的protected类型的成员变量就只能通过子类来访问,这个修饰符是区别于其他修饰符的。 2.重写和重载的区别有哪些? 【提示】重写是基于继承的,重写是重写父类中的方法,从而在子类中出现一个和该方法相同名称的方法。重载的方法名称相同,但方法的参数列表不相同。如:参数个数和参数类型等。重载的方法的返回值可以相同也可以不相同。 多态 语默制造 多态性: “多种形态”,是允许一个接口被多个同类动作使用的特性。[Polymorphism希腊语] 多态用来模拟事物的对环境的适应能力的! 1、编译时多态:在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。 2、运行时多态:由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。 编译时多态——方法的重载 语默制造 1、编译时多态:在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。 请思考: 1:方法名相同,返回值类型相同的情况下,只有参数个数和类型不同,编译会不会报错? 2:方法名相同,返回类型不同,参数类型和个数相同会不会报错? 调用对象方法的执行过程 语默制造 1、编译器查看对象的声明类型和方法名(此时会列举所有父类同名方法)。 2、编译器查看方法的参数类型,选择合适的方法列表。 3、如果是private,static,final方法,或者构造器,编译器可以知道准确的应该调用哪个方法,这种调用方式称为静态绑定(static binding(依赖显示的参数类型))。 4、当调用的方法中有隐式参数类型时(动态绑定 ),此时只能等到程序运行,虚拟机调用对象变量引用的实际类型中最适合的类方法。实际上是用虚拟机为每个类创建的隐式方法列表实现的这个功能。——看一个动态绑定的关于继承线路的例子 多态习题 语默制造 1:创建一个类:车,包含属性:轮胎个数,最高速度,载重量,载物类型,有加速方法(空方法),并创建相应的子类:自行车类,自行车类继承车类,重写加速方法,在方法中输出“要啥自行车?”,创建山地车类,不重写车类方法,拥有独立方法:比赛,该方法输出信息“骑上山地车,腰也不酸了,腿也不疼了,能参加比赛了!” 请问: 1)、当使用车类类型声明山地车对象时,如何输出“要啥自行车?” 2)、使用车类类型声明山地车对象时,可以拥有比赛方法么? 请编写程序证明,并且不能使用main方法,请使用单元测试完成。 2,动物都会有不同的叫声,但是各不相同,青蛙的叫声是“呱呱呱”,猫的叫声是喵喵喵,狗的叫声的汪汪汪,强盗的叫声是“
文档评论(0)