- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第六章Java继承与抽象类;
6.1继?承?的?概?念;
Java的继承具有单根、单继承的特点,每个子类有且仅有一个直接父类,并且所有的类都来自于一个“根”——Object类。例如,定义了动物类Animal,动物类下面有各种子类,Dog、Fish、Bird等等,而这些子类下面可能还有更为具体的类,如Dog下面还有斗牛犬(Bulldog)、萨摩耶犬(Samoyed)、贵宾犬(Poodle)、哈士奇(Husky)等等各种类型的狗,对于Java语言,就会形成如图6-1所示的继承层次。;;
从上面的继承可以看出,定义了Animal类,下面有若干子类,而Animal本身也是Object类的子类;每一个类(除了Object)有且仅有一个父类,也即每个儿子都只能有一个亲生父类。Java没有多重继承的概念(一个儿子有多个亲生父亲)。;
6.2继承的基本语法;;
;;;
程序结果:;
6.3UML图;
;
图中,
(1)类的UML图使用三格方格表示,分别是类名、成员变量和成员方法。
(2)类的继承关系使用空心箭头来指向,由子类指向父类。;
6.4final修饰符;
6.4.2最终方法
final如果修饰一个类的成员方法,则该成员方法就变成最终方法,不可以被子类所重写/覆盖(override),例如在Animal类的showInfo方法前面加上final:
publicfinalvoidshowInfo(){
System.out.println(名称:+name);
System.out.println(重量:+weight);;
Dog类不变,编译Dog类的时候就会有下列错误:
对一些特定的方法用final修饰,可以避免被子类重写。;
6.4.3最终变量
final如果修饰一个类的成员变量,该成员变量就类似于符号常量。符号常量在运行期间不允许再发生变化,所以常量在声明时要求必须指定该常量的值,并且之后不能被改变。一个成员变量若被static和final两个修饰符所限定,它实际的含义就是全局常量。
例如:在Student3类中定义的“finalstaticStringschool=第一实验小学;”,数学上常见的π的定义“staticfinaldoublePI=3.14159;”。在声明PI的时候就必须对PI进行赋值,之后不允许对PI进行赋值改变,PI就相当于一个符号常量,值为3.14159。;
6.5Object类;
;
6.5.1equals()方法
equals()方法用以判断两个对象是否相等。
自定义的类获得Object类的这个方法,可以在自定义类中重写这个方法,按照自定义的规则判断两个对象什么情况下相等,什么情况下不相等。比如要比较两只狗类的对象是否相等,我们自定义的规则是:如果两只狗的名字相同,就认为两只狗相等,在Dog类中加入对equals函数的重写。;;
;
程序结果:;
6.5.2toString()方法
toString()方法用以返回对象的字符串表示形式。
例如,定义一个Dog对象:
Dogdog1=newDog(丁丁,15.5,Lightbrown);
该语句意为:定义一个Dog类对象dog1,这只狗的名字叫丁丁,重量15.5斤,棕黄色毛。我们说dog1是Dog的对象,但dog1实际上是一个Dog类型的引用变量,如果直接输出dog1,输出的是该变量保存的在堆内存中的Dog对象的地址,如运行“System.out.println(dog1);”程序语句,则会出现下图结果:;
;;
程序结果:;
6.5.3getClass()方法
getClass()方法用以获取对象的类型。
任何一个对象都可以调用getClass()方法获得该对象类型,可以把该方法的返回值赋值给Java的类类型(Class)对象,该对象能够获取该类型的相关信息。;;
程序结果:;
6.5.4hashCode()方法
hashCode()方法用以返回对象的哈希码值。
Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址、对象的字段等)映射成一个数值,这个数值称作散列值。hashCode方法的主要作用是配合基于散列的集合(Set)一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。;
6.6抽象类;;
图中,最上面的父类Animal是比较抽象的概念,如果用Animal生成一个对象,只能说这里有一只动物,但具体是什么动物呢?这样生成的对象往往也是抽象的。Animal中有一个move方法
您可能关注的文档
- 3dsMax+VRay+Photoshop室内效果图制作项目教程 第2版 课件全套 孙琪 1--4 ds Max实体建模应用 ---古香古色设计风格制作.pptx
- Java程序设计基础 课件 第1章 Java概述.pptx
- Java程序设计基础 课件 第2章 Java语言基础.pptx
- Java程序设计基础 课件 第3章 Java面向过程编程.pptx
- Java程序设计基础 课件 第4章 Java数组与字符串.pptx
- Java程序设计基础 课件 第5章 Java类与对象.pptx
- Java程序设计基础 课件 第7章 多态与接口.pptx
- Java程序设计基础 课件 第8章 异常处理.pptx
- Java程序设计基础 课件 第9章 Java输入输出.pptx
- Java程序设计基础 课件 第10章 Java常用类介绍.pptx
文档评论(0)