- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java程序设计基础与实践 主编 费雅洁 中国水利水电出版社 第4章 继承与多态 Java类间继承的实现方法 Java继承中变量与方法的隐藏和覆盖问题 this和super关键字的使用 Java多态性的含义 4.1.1 继承性 ⑴ 创建子类 Java中,使用关键字extends实现继承,格式如下: [类修饰符]class 类名extends 父类名 [ implements 接口列表]{//类声明 } 继承而得到的类称为子类,被继承的类称为父类、基类或超类。Java不支持多重继承,即一个类从多个父类派生的能力。子类可以继承父类中所有可被子类访问的成员变量和成员方法。 所有的类都是通过直接或间接地继承java.lang.Object类得到的。 ⑵ 对象的上转型对象 上转型(Upercase)对象,即将子类实例化的对象的引用赋给用父类声明的变量。即定义了子类对象,但把这个对象的引用放到父类的对象中。 例如,假设A类是B类的父类 A a; A=new B(); 或 A a; B b=new B(); a=b; 称这个父类对象a是子类对象b的上转型对象。 隐藏和覆盖 隐藏就是子类隐藏了父类的变量或方法,那么,子类不能访问父类被隐藏的变量或方法。 Java中变量在继承时的覆盖和隐藏规则为: 父类的实例变量和静态变量能被子类的同名变量隐藏。 局部变量和各种参数永远不会被隐藏。 ⑸ 方法的隐藏和覆盖 ⑹ this和super ① this this指明当前对象,当一个方法引用它自己类的实例变量和方法时,每个引用前都隐含着“this”。 另外,this还可以用在重载的构造方法中,用来引用其它的构造方法,一般格式是this([参数列表])。 ② super super关键字的作用是用于子类引用父类的成员,如变量、方法或者构造方法。 使用的格式是“super.成员名” 此外,使用super([参数列表])就可以调用父类的构造方法了,如果父类中有多个构造方法,系统将自动根据super中的参数个数和参数类型来匹配父类中的构造方法。 ⑺ 构造方法的继承 父类中的构造方法也可以被子类继承,使用时应当遵循以下原则: ·子类可以在自己的构造方法中使用super(形式参数表)来调用父类的构造方法。使用this(形式参数表)来调用本类的构造方法。 ·如果调用父类的构造方法,则必须写在子类构造方法的第一行。 ·如果子类的构造方法中没有显式的调用父类的构造方法,则系统默认调用父类的无参数构造方法。 ·如果子类构造方法中既没有显式的调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错。 4.1.2 多态性 Java中多态性的实现是指程序运行时动态绑定调用的方法,换句话说,具有多态性的方法名称是相同的,但是它们会以不同数量、不同类型的参数来进行区分,运行时根据调用方法的参数和类型来动态决定绑定哪个方法。 尚辅网 / 例如: class People{ String id,name; int age; People(){ id=00000; name=null; age=0; } void setName(String name){ =name; } String getName(){ return name; } } public class Student extends People{ //定义Student类,继承People类 String number; //定义自己的成员变量:学号 public static void main(String args[]){ Student s=new Student(); //创建对象 s.age=20; //继承父类成员变量 s.number=15; //自己的成员变量 s.setName(黎明); //继承父类的成员方法 System.out.println(学号:+s.number); //输出信息 System.out.println(姓名:+s.getName()); System.out.println(年龄:+s.age); } } 例如: class People{ protected String name=张三; protected int a
您可能关注的文档
- C语言程序设计教程葛素娟第七章节函数.ppt
- C语言程序设计教程葛素娟第三章节顺序结构程序设计.ppt
- C语言程序设计教程葛素娟第十二章节文件.ppt
- C语言程序设计教程葛素娟第十一章节位运算.ppt
- C语言程序设计教程葛素娟第四章节选择结构程序设计.ppt
- C语言程序设计教程葛素娟第五章节循环结构程序设计.ppt
- C语言程序设计教程葛素娟第一章节C语言概述.ppt
- C语言程序设计教程郝玉秀第1章节绪论.ppt
- C语言程序设计教程郝玉秀第2章节.ppt
- C语言程序设计教程郝玉秀第3章节.ppt
- Java程序设计基础与实践费雅洁第5章节.ppt
- Java程序设计基础与实践费雅洁第6章节.ppt
- Java程序设计基础与实践费雅洁第7章节.ppt
- Java程序设计基础与实践费雅洁第9章节.ppt
- Java程序设计基础与实践费雅洁第11章节.ppt
- Java程序设计及应用开发教程虞益诚主编Java程序设计及应用开发教程.ppt
- Java程序设计及应用开发教程虞益诚主编第1章节Java概述.ppt
- Java程序设计及应用开发教程虞益诚主编第2章节Java语言基础.ppt
- Java程序设计及应用开发教程虞益诚主编第4章节面向对象程序设计基础.ppt
- Java程序设计及应用开发教程虞益诚主编第6章节异常处理.ppt
文档评论(0)