网站大量收购独家精品文档,联系QQ:2885784924

Java程序设计技能教程 彭德林 JAVA程序设计技能教程第6章新.ppt

Java程序设计技能教程 彭德林 JAVA程序设计技能教程第6章新.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java程序设计技能教程 主编 彭德林 李德有 中国水利水电出版社 第6章 类的继承与多态 6.1 任务一 掌握类的继承 继承:子类拥有父类的属性和方法 我们通过一个实际应用问题来引出类的继承这个问题的讲解。 6.1.1 继承的基本概念 【例6-1】定义一个普通人的类和学生类。 public class Person { public String name; public int age; public String getInfo(){...} } public class Student { public String name ; public int age; public String school; public String getInfo(){...} public String study(){...} } 针对这种情况,Java引入了继承这个概念,只要表明类Student继承了类Person的所有属性和方法,就不用在类Student中重复书写类Person中的代码了,更确切的说就是简化了类的定义。 我们通过extends关键字来表明类Student 具有类Person的说有属性和方法 上面的两个类可以简写成下面的代码: 【例6-2】简写的学生类。 public class Person { public String name; public int age; public String getInfo(){...} } public class Student extends Person{ public String school; public String study(){...} } 在类的继承中有这样一些细节问题: 1.通过继承可以简化类的定义,可以实现代码重用,在上面的例子中我们重用了基类的属性和方法。 2.Java只支持单继承,不允许多重继承。也就是说,在Java中一个子类只能有一个父类,不允许一个类直接继承多个父类,但一个类可以被多个类继承。 3.Java中可以有多层继承。即一个类可以继承为某一个类的子类。如类Y继承了类X,类Z又可以继承类Y,那么类Z也间接继承了类X。这种应用如下所示: class X { } class Y extends X { } class Z extends Y{ } 4.子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法。在子类的构造方法中可以使用super(参数列表)调用父类的构造方法。如: public class Student extends Person{ public Student(String name,int age,String school){ super(name,age); this.school=school; } } 5.如果子类的构造方法中没有显示的调用父类的构造方法,也没有使用this关键字调用重载其他的构造方法,则在产生之类的实例对象时,系统默认调用父类无参数的构造方法,也就是说在下面的的类B中定义的构造发昂法中,写不写super()语句效果是一样的。 public class B Person A{ public B(){ super();//有没有这一句,效果都是一样的 } } } public class Student extends Person { public void study() { System.out.println(学习中...); } public static void main(String[] args) { Person p = new Person(); = 张三; p.age = 35; p.getInfo(); Student s = new Student(); = 李四; s.age = 18; s.getInfo(); s.study(); } } 6.1.2 继承的实现 对象中的成员变量的初始化过程是按照下述步骤进行的: 1.分配成员变量的存储空间并进行默认的初始化,就是用new关键字产生对象后,对类中的成员变量进行初始化赋值。 2.绑定构造方法参数,就是new Person(实际参数列表)中所传递的参数赋值给构造方法中的形式参数变量。 3.如果有this()调用则调用相应得重载构造方法(被调用的重载构造方法又从步骤(2)开始执行这些流程),被调用的重载构造方法执行流程结束后,回到当前构造方法当前构造方法直接跳到步骤(6)执行。 4.显式或隐式追溯调用父类的构造方法(一直到Object类

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档