Java程序设计项目化教程-5.1.1继承的概念脚本_第1页
Java程序设计项目化教程-5.1.1继承的概念脚本_第2页
Java程序设计项目化教程-5.1.1继承的概念脚本_第3页
Java程序设计项目化教程-5.1.1继承的概念脚本_第4页
Java程序设计项目化教程-5.1.1继承的概念脚本_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

继承是面向对象的三大特性之一。类通过继承可以实现代码复用,提高程序设计的效率,缩短开发周期,还可以提高软件的可维护性和可扩展性5.1类的继承PART5.1.1继承的概念鸟类具有飞的行为,我们就可以编写一个鸟类。由于鸟类也属于动物类,因此它也具有动物类所共有的属性和行为。所以,在编写鸟类程序时,就可以让鸟类继承父类。这样不仅可以节省程序的开发时间,也提高了代码的可重用性。5.1.1继承的概念1.父类与子类在Java中,被继承的类称为父类或基类;继承父类的类称为子类或者派生类。一个基类可以派生出多个子类,这个基类实际上是所有子类的公共属性和公共方法的集合。5.1.1继承的概念5.1.1继承的概念在多个类组成的层次结构中,子类的基类分为直接基类和间接基类。直接基类是指与当前子类相邻且有继承关系的上一级的类。在继承的层次树状结构中,直接基类处于当前子类的上一层,中间不再有其他类。5.1.1继承的概念直接基类在子类的Java描述中,就是用一个extends保留字指明的那个基类,间接基类也称为子类的祖先基类,是指当前子类直接基类的上一级或上几级的类,间接基类与子类之间,必须至少相隔两级。(1)子类能够继承基类中被声明为public和protected的属性和成员方法,但不然继承的被声明为private的属性和成员方法。子类在继承基类的成员要素时(2)子类能够继承同一个包的基类中默认包访问权限的属性和成员方法。(3)如果子类声明了与基类的属性同名的属性,那么子类优先使用自己声明的属性,这时称子类的属性隐藏了基类的属性。子类在继承基类的成员要素时(4)如果子类声明了与基类成员方法原形相同的成员方法,那么子类优先使用自己定义的成员方法,此时,称子类的成员方法覆盖了基类的成员方法。(5)在子类中如果要访问被子类隐藏的基类属性,或调用被子类覆盖的基类的成员方法,只需要使用super保留字来实现。子类在继承基类的成员要素时2.继承的类型在面向对象中,继承存在着两种形式:单一继承和多重继承。5.1.1继承的概念(1)单一继承是指一个子类最多只能有一个直接基类,可以有多个间接基类。5.1.1继承的概念(2)多重继承是指一个子类可以有一个以上的直接基类,该子类从所有的直接基类中,全部继承他们的属性和行为方法。5.1.1继承的概念单一继承中类的结构为树状层次结构,对应的程序结构较为简单,容易实现;多重继承的类结构,则为网状结构,程序设计比较复杂。5.1.1继承的概念出于安全性和可靠性的考虑,Java语言仅支持类的单一继承,即每个类最多只能有一个直接基类,可以通过接口机制,变相地实现多重继承。5.1.1继承的概念

3.继承的实现在Java的类声明中,实现继承的语法格式如下:

[类的访问修饰符]class<子类名>extends<父类名>{…//类体定义

}5.1.1继承的概念5.1.1继承的概念(1)保留字extends用来指明子类继承基类。如果类声明中没有给出extends及基类名,那么声明的类自动继承系统默认的Object类。Object类是Java定义的抽象类,该类是所有Java类的根类。5.1.1继承的概念(2)子类可以继承基类中所有非private类型的成员要素,但基类中声明的私有属性和私有方法,子类却无法继承。5.1.1继承的概念(3)虽然子类无权在自己的方法中直接访问基类中的私有属性,但子类可以通过对继承自基类的非私有方法的调用,来间接的访问基类的私有属性。5.1.1继承的概念(4)继承无法改变基类成员要素的访问权限。假如基类定义了protected类型的和public类型的方法,子类会继承基类的这些属性和方法,但子类继承的属性依然为protected类型,继承的方法依然为public类型。例5-1子类继承父类的实现

packagechapter5;classAnimal{ //定义Animal类

privateStringname; //定义name属性

privateintage; //定义age属性

publicStringgetName(){returnname;}publicvoidsetName(Stringname){5.1.1继承的概念=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}5.1.1继承的概念classDogextendsAnimal{//定义Dog类继承Animal类

privateStringcolor;//定义color属性

publicStringgetColor(){returncolor;}publicvoidsetColor(Stringcolor){this.color=color;}}5.1.1继承的概念5.1.1继承的概念publicclassexample5_1{ //定义测试类

publicstaticvoidmain(String[]args){Dogdog=newDog();//创建一个Dog类的实例对象

dog.setName(“牧羊犬”);//此时访问的方法是父类中的,子类中并没有定义

dog.setAge(3);//此时访问的方法是父类中的,子类中并没有定义

dog.setColor("黑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论