Java程序设计修改-ch04.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java程序设计修改-ch04.doc

第4章 继承和多态 继承是Java语言的一个重要特性。本章主要介绍关于继承的若干应用。通过继承,子类拥有父类的所有非私有成员。子类对继承自父类的类成员重新进行定义,就称为覆盖。 方法的重载是一个类中对自身已有的同名方法的重新定义。每个重载方法的参数的类型和(或)数量必须是不同的。用abstract修饰符修饰的类称为抽象类,抽象类不能实例化为对象。如果一个类被final修饰符所修饰,说明这个类不可能有子类,这样的类就称为最终类。最终类不能被别的类继承,它的方法也不能被覆盖。 接口用interface来声明。接口中的域变量都是常量,方法都是没有方法体的抽象方法,其方法的真正实现在“继承”这个接口的各个类中完成。一个类只能有一个父类,但是类可以同时实现若干个接口,从而实现了多重继承。 本章要点 继承和多态的概念、特点以及实现方法 域的继承与隐藏 方法的继承与覆盖 接口的实现 本章难点 继承和多态的实现方法 接口的实现 学习目标 理解继承、多态、接口的概念 掌握继承、多态、接口在Java中的实现。 4.1 继承和多态的概念 4.1.1 继承的概念 继承实际上是存在于面向对象程序中的两个类之间的一种关系。当一个类A能够获取另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类B称为父类或超类,继承了父类或超类的数据和操作的类A称为子类或衍生类,一个父类可以同时拥有多个子类。使用继承具有以下的好处:降低了代码编写中的冗余度,更好地实现了代码复用的功能,从而提高了程序编写的效率,使得程序维护变得简单、方便。 现以汽车为例,汽车分为很多种,比如公共汽车、警车、私家车等。如果要实现对汽车的管理,就需要为每一种汽车创建一个类,而每一个类中都会具有所有汽车共有的属性和方法,比如每个汽车类都会有颜色、车灯等属性,都会有加速、刹车等方法,这样势必带来代码的重复,维护起来也比较麻烦。如果我们将所有汽车共有的属性和方法都抽象出来,构建一个汽车类,让各种汽车都继承这个类,这样在汽车这个类中所拥有的属性就会衍生在它的子类中,各种汽车都会具有汽车类所拥有的属性和方法,我们就不用为每种汽车定义像颜色、车灯这样的属性,以及加速、刹车等相同的方法了。而且维护起来也比较容易了。这种结构如图4-1所示。 图4-1 汽车类的继承 继承分为单重继承和多重继承两种类型,所谓单重继承,是指任何一个类都只有一个单一的父类;而多重继承是指一个类可以有一个以上的父类。采用单重继承的程序结构比较简单,是单纯的树状结构,掌握、控制起来相对容易;而支持多重继承的程序,其结构则是复杂的网状,设计、实现都比较复杂。Java语言仅支持类的单重继承。 4.1.2 多态的概念 多态是面向对象程序设计的又一个特殊特性。所谓多态,是指一个程序中同名的不同方法共存的情况。面向对象的程序中多态的情况有多种,可以通过子类对父类成员的覆盖实现多态,也可以利用在同一个类中同名方法的重载来实现多态。 多态是指一个方法声明的多个不同表现形式。在同一个类中或者不同的类中,同一个方法的多个不同实现。比如同样是刹车这样一个功能,在不同的汽车中所要做的操作可能是不一样的,这样我们在程序中就要为刹车这个方法名创建几个不同的实现,也就是说,刹车这个方法名可能会有几个不同的方法体,这就是面向对象程序设计中多态的概念。 4.2 类的继承 4.2.1继承的实现 Java中的继承是通过extends关键字来实现的,在定义类时使用extends关键字指明新定义类的父类,就在两个类之间建立了继承关系。其语法是: [类修饰符] class 子类名 extends 父类名 从上面的语法格式,我们可以看出比一般类的声明多了“extends”关键字部分,通过该关键字来指明子类要继承的父类。如果,父类和子类不在同一个包中,则需要使用“import”语句来引入父类所在的包。 【】class Father{ int f_a=0; void print(){ System.out.println (f_a=+f_a); } } class Son extends Father{ int s_a=10; } class Exam4_1{ public static void main(String [] args){ Son s =new Son(); s.print(); System.out.println (f_a=+s.f_a); System.out.println (s_a=+s.s_a); } } 在例子中可以看到,在子类的声明中使用“extends”关键字指明一个被继承的父类就可以实现

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档