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

AVCEIT 第6章Java的继承与多态.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVCEIT 第6章Java的继承与多态

. 类的继承 覆盖 重载 应用实例 6.1 类的继承(inheritance) 6.1.1 概述 继承是面向对象程序设计的另一个重要特色,类继承也称为类派生,是指一个类可以继承其他类的非私有成员,实现代码复用。被继承的类称为父类或超类,父类包括所有直接或间接被继承的类;继承父类或超类后产生的类称为派生类或子类。 什么是子类? 子类是作为另一个类的扩充或修正所定义的一个类. 6.2.2 类继承的实现 Java中的继承是通过extends关键字来实现的,在定义新类时使用extends关键字指明新类的父类,就在两个类之间建立了继承关系 [修饰符] class 子类名 extends 父类名{ 类体定义; } 类的严格定义及修饰字 TrashCar中继承了Car中的两个方法 Java语言中,只允许单继承。 所谓单继承是指每个类只有一个父类,不允许有多个父类。但一个类允许同时拥有多个子类,这时这个父类实际上是所有子类的公共成员变量和公共方法成员的集合,而每一个子类则是父类的特殊化,是对公共成员变量和方法成员的功能、内涵方面的扩展和延伸。Java语言的多继承可通过接口来实现。 类继承不改变成员的访问权限。 父类中的成员为公有的或被保护的,则其子类的成员访问权限也继承为公有的或被保护的。 类继承具有传递性。 即子类继承父类的所有非私有成员,也继承父类的父类直至祖先所有的所有非私有成员。 若父类名又是某个类的子类,则定义的类也是该类的(间接)子类。若无extends子句,则该类为java.lang.Object的子类。 [例6.1] P109 6.1.3 派生类的初始化(构造方法) 在创建派生类的对象时,使用派生类的构造方法对其初始化,不但要对自身的成员变量赋初值,还要对父类的的成员变量赋初值。因为成员变量赋初值通常在构造方法中完成,因此在Java语言中,允许派生类继承父类的构造方法。构造方法的继承遵循如下的原则: (1)若父类是无参数的构造方法,则子类无条件的继承该构造方法。 (2)若子类无自己的构造方法,则它将继承父类的无参构造方法作为自己的构造方法;若子类有自己的构造方法,则在创建子类对象时,它将先执行继承自父类的无参构造方法,然后再执行自己的构造方法。 (3)若父类是有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。 【例】继承类RectConstructor时对父类的成员变量赋初值。 class Cube extends RectConstructor{ double height; Cube(double l,double w,double h){ super(l,w); height = h; } void vol(){ System.out.println(长方体体积 = + area() * height); } } public class CubeDemo { public static void main(String args[]){ Cube c = new Cube(7,6,5); c.vol(); } } 程序运行结果如下: 长方体体积 = 210.0 6.2 类的成员覆盖 6.2.1 成员覆盖概述: 在类的继承中,若子类(派生类)新增的成员名称与父类(超类)成员相同,则称为成员覆盖(overriding)。 在子类中定义与父类同名成员的目的是修改父类的属性和行为。 成员变量的覆盖即对父类成员变量的隐藏 什么是方法的覆盖? 在子类中重新定义父类中已有的方法。 (1)成员变量的覆盖 若子类声明了与父类同名的变量,则父类的变量被隐藏起来,直接使用的是子类的变量,但父类的变量仍占据空间,可通过super或父类名来访问。 【例】在子类中定义了与父类同名的变量,从而隐藏了父类成员变量,这种隐藏变量可加super前缀来访问。 class A{ int x = 100; } class B extends A{ int x = 200; void print(){ System.out.println(Subclass : + x);

文档评论(0)

didala + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档