版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标理解抽象和封装。理解继承和多态。掌握修饰符this和super的使用。1目前一页\总数五十页\编于十四点4.1类的封装含义:java中,对象就是一个封装体。把对象的属性和服务结合成一个独立的单位,并尽可能隐蔽对象的内部细节(尤其是私有数据)目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而,使软件错误能够局部化,大大减少查错和排错的难度。“隐藏属性、方法或实现细节的过程称为封装。”2目前二页\总数五十页\编于十四点
封装的示例有选择地提供数据法拉力公司迪斯尼汽车公司公共电话号码电子邮箱产品种类私有备件的制造方法备件库存备件的制造成本公共电话号码电子邮箱汽车种类私有汽车的组装方法汽车库存汽车的组装成本3目前三页\总数五十页\编于十四点封装特性体现设置对象中的成员变量和方法的访问权限(public,private,protected,缺省);提供一个统一供其他类引用的访问接口,如一些public方法;其它对象不能直接修改本对象所拥有的私有属性和私有方法包:类空间的划分单位4目前四页\总数五十页\编于十四点4.2类的继承含义:子类自动地享用父类中拥有的属性和方法。继承的特点具有层次结构子类继承了父类的属性和方法5目前五页\总数五十页\编于十四点父类
子类父类/子类是相对的Cow类Lion类Tiger类Animals类Carnivorous类Herbivorous类Coat类示例6目前六页\总数五十页\编于十四点继承的优点代码的可重用性父类的属性和方法可用于子类设计应用程序变得更加简单可以轻松地自定义子类7目前七页\总数五十页\编于十四点继承继承是面向对象语言中最具有特色,也是与传统最不相同的一个。当一个类获取另一个类中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称为这两个类之间具有继承关系。8目前八页\总数五十页\编于十四点继承例子:请确认各类之间的关系planemilitaryplane(军事)passengerplane(客机)cargoplane(货物)fighterplane(战斗机)Airliner(民用机)9目前九页\总数五十页\编于十四点飞机军事机民用机r战斗机货物机客机10目前十页\总数五十页\编于十四点PublicclassEmployee{Stringname;DatehireDate;DatedateofBirth;StringjobTitleintgrade;publicStringgetDetails()}PublicclassManager{Stringname;DatehireDate;DatedateofBirth;StringjobTitleintgrade;
StringDepartment;publicStringgetDetails()
publicvoidGuide()}11目前十一页\总数五十页\编于十四点ContinuePublicclassmanagerextendsemployee{Stringdepartment;
publicvoidGuide()}关键字extends是解决继承问题的12目前十二页\总数五十页\编于十四点继承类之间的继承关系是面向对象程序设计语言的基本特征一个类(子类)是另一个类(父类)的特例。父类是被继承的,子类是继承的一般性(父类)和特殊性(子类)13目前十三页\总数五十页\编于十四点Continue新类继承一般类的状态和行为,并根据需要增加自己的状态和行为。由继承而得到的类称为子类(subclass),被继承的类称为父类(superclass)。父类可以是自己编写的类,也可以JAVA类库中的类。利用继承可以有效使用代码的重复使用。JAVA不支持多重继承,即子类只能有一个父类。14目前十四页\总数五十页\编于十四点继承的定义子类的成员有一部分是子类自己声明定义的。另一部分是从它的父类继承的。子类继承父类的成员变量作为自己的一个成员变量。继承父类的方法作为自己的方法。15目前十五页\总数五十页\编于十四点CONTINUE使用关键字extends来声明一个类是另一个类的子类。格式如下:class子类名extends父类名例如:classstudentsextendsPeople{}16目前十六页\总数五十页\编于十四点继承的实现[修饰符]class类名[extends父类]{成员变量声明;成员方法声明;}说明:1、子类将自动继承父类中的protected和public等修饰的非私有属性和方法。2、private属性和方法不能被继承。子类中新增加的属性和方法是对父类的扩展子类中定义的与父类同名的属性是对父类属性的隐藏,同名的方法是对父类方法的覆盖17目前十七页\总数五十页\编于十四点18目前十八页\总数五十页\编于十四点继承的JAVA实现classBox{ doublewidth; doubleheight; doubledepth; Box()//无参构造函数 { width=-1; height=-1; depth=-1; } Box(doublew,doubleh,doubled)//有参构造函数 { width=w; height=h; depth=d; } doublevolume()//计算体积 {returnwidth*height*depth; }}
19目前十九页\总数五十页\编于十四点继承的JAVA实现classBoxWeightextendsBox{ doubleweight; BoxWeight(doublew,doubleh,doubled,doublem)//字类构造函数 { width=w; //继承的属性 height=h; //继承的属性 depth=d; //继承的属性 weight=m; //子类特有的属性}}
20目前二十页\总数五十页\编于十四点继承的JAVA实现classDemoBoxWeight{publicstaticvoidmain(Stringargs[]){BoxWeightmybox=newBoxWeight(10,20,15,34.3);//初始化子类对象myboxdoublevol;vol=mybox.volume();//调用继承的父类方法System.out.println("箱子的体积为:"+vol);System.out.println("箱子的重量为:"+mybox.weight); }}21目前二十一页\总数五十页\编于十四点子类使用构造方法子类构造方法总是先调用(显示或隐式地)其父类的构造方法以创建和初始化子类中的父类成员(super)构造方法不能被继承,它们只属于定义它们的类.当创建一个子类对象时,子类构造方法首先调用父类的构造方法并执行,接着才执行子类构造方法.如果子类没有构造方法,则它继承父类无参数的构造方法作为自己的构造方法22目前二十二页\总数五十页\编于十四点构造方法的自动调用子类继承父类的时候,自动调用父类的构造方法
23目前二十三页\总数五十页\编于十四点CONTINUE如果子类的构造方法没有明显指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。Super关键字可以调用父类的构造方法,但是必须使用在子类的构造方法中,并且只能是第一条语句因此如果在子类的构造方法中,没有使用关键字super调用父类的某个构造方法,那么默认有:super(),即调用父类的不带参数的构造方法。24目前二十四页\总数五十页\编于十四点publicclasstest{ Aa1=newA(); Aa2=newA(3); Bb1=newB(); Bb2=newB(4);}classA{ A(){ System.out.println(1); } A(inta){ System.out.println(2); }}classBextendsA{ B(){ super(3); System.out.println(3); } B(inta){ System.out.println(4); }}
25目前二十五页\总数五十页\编于十四点例子编写一个类圆锥继承圆类(上节课完成的类)要求:构造方法2个成员方法:求体积和求表面积26目前二十六页\总数五十页\编于十四点私有变量是无法继承的x尽管是不被B继承的,但是B仍旧可以通过继承方法f()来操作x.27目前二十七页\总数五十页\编于十四点28目前二十八页\总数五十页\编于十四点成员变量隐藏当子类中定义的成员变量只要和父类中的成员变量同名时,子类就隐藏了继承的成员变量。29目前二十九页\总数五十页\编于十四点父类中操作的变量仍旧是父类的成员变量.30目前三十页\总数五十页\编于十四点方法重写子类可以隐藏已继承的方法,子类通过方法重写来隐藏继承的方法。方法重写:定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。31目前三十一页\总数五十页\编于十四点子类继承父类的speak()方法和cry()方法,但子类通过重写speak()隐藏了继承的speak()方法。在cry方法中调用speak方法,调用的哪一个?32目前三十二页\总数五十页\编于十四点33目前三十三页\总数五十页\编于十四点Super操作被隐藏的成员如果子类和父类的成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类定义一个方法,并且这个方法的名字、返回类型,参数个数和类型与父类的某个方法完全相同是,子类从父类继承的这个方法将隐藏。我们要调用父类隐藏的成员,我们可以使用super:super.成员变量;super.成员方法;34目前三十四页\总数五十页\编于十四点35目前三十五页\总数五十页\编于十四点36目前三十六页\总数五十页\编于十四点37目前三十七页\总数五十页\编于十四点下列那个选项插入第八行,编译不会通过A.publicfloatgetNum{return4.0f}B.publicvoidgetNum(){}C.publicvoidgetNum(doubled){}D.publicvoidgetNum(floatd){return4.0d;}38目前三十八页\总数五十页\编于十四点Resutl?39目前三十九页\总数五十页\编于十四点以上J_superclass中的构造方法,调用mb_add是调用子类的,操作的m_data是父类的。40目前四十页\总数五十页\编于十四点final关键字可以修饰变量(常量)可以修饰方法(不能被重写)可以修饰类(不能再被继承)41目前四十一页\总数五十页\编于十四点42目前四十二页\总数五十页\编于十四点43目前四十三页\总数五十页\编于十四点superjava中通过super来实现对父类成员的访问,super用来引用当前对象的父类。使用场合:访问父类被隐藏的成员变量,如:super.variable调用父类中被重写的方法,如:super.Method([paramlist]);调用父类的构造函数,如:
super([paramlist]);44目前四十四页\总数五十页\编于十四点classPerson{ publicintc; privateStringname; privateintage; protectedvoidsetName(Stringname){ =name; } protectedvoidsetAge(intage){ this.age=age; } protectedvoidprint(){ System.out.println("姓名:"+name+",年龄:"+age); }}publicclassDemoSuperextendsPerson{ publicvoidprint(){ super.print();//调用父类的方法print } publicstaticvoidmain(String[]args){ DemoSuperds=newDemoSuper(); ds.setName("张三"); ds.setAge(22); ds.print();//调用子类的print方法 }}示例45目前四十五页\总数五十页\编于十四点4.3类的多态多态:是指一个程序中存在着同名不同实现的方法作用:同一接口,不同的实现如:System.out.println(/*各种类型的数据*/)方法进一步隐藏对象内部的实现细节,简化程序设计的复杂度表现形式:重载:即在同一类中定义多个同名的不同方法。覆盖:子类中对父类方法进行重写(重新定义),但具体实现不一样46目前四十六页\总数五十页\编于十四点多态性父类子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年夫妻离婚财产与房产处置合同
- 2024年多功能智能家居系统设计与安装合同
- (2024版)含有车险服务的出租车承包合同协议书
- 2024年农业科技创新平台建设与运营合同
- 2024年固体废物处理工程施工合同
- 2024年企业股权转让与收购合同
- 2024年专业:纺织品买卖协议
- 2024年专用木材厂租地协议书
- 2024年区块链技术服务购销合同
- 房地产项目宣传物料配送服务方案
- 探究影响滑动摩擦力大小的因素实验说课课件
- 室上性心动过速的鉴别诊断课件
- 化工石油工程项目管道安装技术教材课件
- 近代科学革命课件
- 二年级上册美术课件-10.感觉肌理 |苏少版 (共14张PPT)
- 轻创业、赢未来培训教学课件
- 三年级 上册科学 课件-2.4 哺乳动物 |湘教版(一起)(共23张PPT)
- 三年级检讨书100字(5篇)
- 四年级上册美术教案-第10课 黑白灰 苏少版
- 乐山市市中区2022-2023学年度上期期中调研考试八年级生物试题及答案
- 《出塞》优秀课件
评论
0/150
提交评论