Java程序设计基础 课件 第6章 Java继承与抽象类.pptx

Java程序设计基础 课件 第6章 Java继承与抽象类.pptx

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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方法

文档评论(0)

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

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档