欢迎来到天天文库
浏览记录
ID:51966964
大小:1.90 MB
页数:79页
时间:2020-03-26
《java教程-子类与继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.子类与继承主讲:王华彬面向对象的特性继承性狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是“继承”关系的重要性质。AnimalLion父类子类子类继承父类的非私有的基本属性和方法,同时又能创建属于自己的属性的方法。创建子类通过在类的声明中加入extends子句来创建一个类的子类:classSubClassextendsSuperClass{}Java技术及其应用创建子类classAnimal{动物基本属性和方法;属性:体重、高度、腿的数量;方法:进食、消化、排泄;}classLionextendsAnimal{自动拥有动物类中允许
2、继承的属性和方法;还可添加狮子特有的属性和方法;比如:毛发颜色、性别、凶猛程度;咆哮、捕猎、睡觉;}Java技术及其应用继承的属性和方法新增的属性和方法我们先认识一下类的“祖先”,即所有类的根类;想象一下,什么是类的祖先?publicclassA{}classmaintest{publicstaticvoidmain(Stringargs[]){Aa;}}默认继承类java.lang.Object类:所有类的祖先classA{}相当于classAextendsjava.lang.Object{}如果缺省extends子句,则该类为java.lang.
3、Object的子类。Java技术及其应用java.lang.Object类它处于Java开发环境的类层次树的根部,其他所有的类都直接或间接地为它的子类。该类定义了一些所有对象最基本的状态和行为,例如:equals()判断两个对象引用是否相同,等价于==getClass()返回一个对象在运行时所对应的类的表示,从而可以得到相应的信息。toString()返回对象的字符串表示。Java技术及其应用classT1{}publicclassTest1{publicstaticvoidmain(String[]args){T1t1=newT1();T1t2=n
4、ewT1();t2=t1;booleanb;b=t1.equals(t2);System.out.println(b);}}接下来,分析一下多重继承和多层继承面向对象特性——继承性Java中支持单继承。思考:为什么取消多重继承?动物水栖生活动物陆栖生活动物水陆两栖动物动物类马类驴类骡子类优点:继承二者优点缺点?为什么取消多重继承?鱼类鲫鱼类家猪类猪类面向对象特性——继承性Java中不支持多重继承。Java中支持多层继承。再思考一下继承的作用?1、提高代码复用度,减少代码;2、方便扩展,在以前的基础上进行改进3、总之,取其精华、引入创新本章学习内容1、
5、子类继承父类的属性和方法2、父类的属性和方法不够用怎么办?研究:子类增加新的属性和方法3、父类如果想保留某些属性和方法怎么办?研究:父类设定某些属性和方法不允许继承4、父类的某些属性和方法,不太适合子类怎么办?研究:子类修改父类的属性和方法5、父类不想被继承怎么办?研究:为了保密性,类可设置为不允许继承6、父类允许被继承,但是不想被修改属性和方法怎么办?父类的某些属性和方法允许继承,但是不允许子类修改;子类的继承性若子类和父类在同一个包内,子类可以继承父类中访问权限设定为public、protected、default的成员变量和方法。若子类和父类不
6、在同一个包内,子类可以继承父类中访问权限设定为public、protected的成员变量和方法。例题正常继承classA{intx;voidsetX(intx){this.x=x;}intgetX(){returnx;}}Java技术及其应用classBextendsA{doubley=12;voidsetY(inty){this.y=y+x;}doublegetY(){returny;}}例题私有继承classA{privateintx;voidsetX(intx){this.x=x;}intgetX(){returnx;}}Java技术及其应用c
7、lassBextendsA{doubley=12;voidsetY(inty){this.y=y+x;}doublegetY(){returny;}}子类的继承性Java技术及其应用子类对象引用从父类继承的成员子类特有的成员从父类未继承的成员classA{privateintx=10;protecteddoubley=12.56;voidf(){y=y+x;System.out.printf("x=%d,y=%f",x,y);}}classBextendsA{doublez=12;voidg(){z=y+100;System.out.printf
8、("z=%f",z);}}classExample{publicstaticvoidmain(Strin
此文档下载收益归作者所有