JAVA程序员培训定制课程c06课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《JAVA程序员培训定制课程c06课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序员 培训 定制 课程 c06 课件
- 资源描述:
-
1、第六章1 Java类的继承 方法的重载、重写 多态性及其应用 成员访问控制 对象的创建和初始化细节 几种常用的Java类2 为描述和处理个人信息,定义类Person:public class Person public String name;public int age;public Date birthDate;public String getInfo().Person+name:String+age:int+birthDate:Date+getInfo():String3 为描述和处理学生信息,定义类Student:public class Student public String
2、name;public int age;public Date birthDate;public String school;public String getInfo().Student+name:String+age:int+birthDate:Date+school:String+getInfo():String4 通过继承,简化Student类的定义:public class Person public String name;public int age;public Date birthDate;public String getInfo().public class Studen
3、t extends Person public String school;Person+name:String+age:int+birthDate:Date+getInfo():StringStudent+school:String5类继承语法规则:class extends *Object类是所有Java类的最高层父类Java只支持单继承,不允许多重继承 一个子类只能有一个父类 一个父类可以继承出多个子类6Person+name:String+age:int+birthDate:Date+getInfo():StringStudent+school:StringSoldierOfficer
4、Graduate+major:history+register():void7public class TestAnimals public static void main(String args)Horse b=new Horse();System.out.println(b.getI();class Animal private int i=1;public int getI()return i;public void setI(int i)this.i=i;class Horse extends Animal int i=2;8ModiferSame ClassSame Package
5、SubclassUniverseprivateYesdefaultYesYesprotectedYesYesYespublicYesYesYesYes可以对Java类中定义的属性和方法进行访问控制-规定不同的保护等级:9class Parent private int f1=1;int f2=2;protected int f3=3;public int f4=4;private void fm1()System.out.println(in fm1()f1=+f1);void fm2()System.out.println(in fm2()f2=+f2);protected void fm3
6、()System.out.println(in fm3()f3=+f3);public void fm4()System.out.println(in fm4()f4=+f4);10class Child extends Parentprivate int c1=21;public int c2=22;private void cm1()System.out.println(in cm1()c1=+c1);public void cm2()System.out.println(in cm2()c2=+c2);public static void main(String args)int i;P
7、arent p=new Parent();i=p.f2;/i=p.f3;i=p.f4;p.fm2();/p.fm3();p.fm4();Child c=new Child();i=c.f2;/i=c.f3;i=c.f4;i=c.c1;/i=c.c2;c.cm1();c.cm2();11f1_privatef2_defaultc2_publicf3_protectedf4_publicc1_private内存空间中子类对象携带的数据子类的对象可以调用的方法fm2()_defaultfm3()_ protectedfm4()_ publiccm2()_publiccm1()_private父类Pa
8、rent和子类Child在同一包中定义时:12改造上述应用程序后,分析其结果,体会Java访问控制机制,可分下述几种情形:应用程序入口main()方法定义在一个非子类中Parent和Child类位于不同包中Parent和Child类位于不同包中,main()方法定义在不同包内的非子类中13在子类中可以根据需要对从父类中继承来的方法进行改造-方法的重写重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型重写方法不能使用比被重写方法更严格的访问权限14 public class Person protected String name;protected int age;protect
9、ed Date birthDate;/java.util包中定义过类Datepublic String getInfo()return Name:+name+n+age:+age;public class Student extends Person protected String school;public String getInfo()return Name:+name+nage:+age +nschool:+school;15public class Parent public void method1()public class Child extends Parent priva
10、te void method1()/illegalpublic class UseBoth public void doOtherThing()Parent p1=new Parent();Child p2=new Child();p1.method1();p2.method1();16在Java类中使用super来引用父类的成分super可用于访问父类中定义的属性super可用于调用父类中定义的成员方法super可用于在子类构造方法中调用父类的构造方法super的追溯不仅于直接父类17 public class Person private String name;private int a
11、ge;private Date birthDate;public String getInfo()return Name:+name+nage:+age;public class Student extends Person private String school=New Oriental;public String getSchool()return school;public String getInfo()/调用父类的方法 return super.getInfo()+nschool:+school;18多态-在Java中,子类的对象可以替代父类的对象使用一个对象只能有一种确定的数据
12、类型一个引用类型变量可能指向(引用)多种不同类型的对象Person p=new Student();Object o=new Person();o=new Student();19一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法Student m=new Student();m.school=pku;/合法Person e=new Student();e.school=pku;/非法20(Virtual Method Invocation)正常的方法调用 Person e=new Person();e.getInfo();Student
13、 e=new Student();e.getInfo();虚拟方法调用(多态情况下)Person e=new Student();e.getInfo();编译时类型和运行时类型21 同类收集(homogenous collections)MyDate m=new MyDate2;m0=new MyDate(22,12,1964);m1=new MyDate(22,7,1964);异类收集(heterogeneous collections)Person p=new Person3;p0=new Student();p1=new Person();p2=new Graduate();22方法声明
14、的参数类型为父类类型,可以使用子类的对象作为实参调用该方法public class Test public void method(Person e)/e.getInfo();public static void main(Stirng args)Test t=new Test();Student m=new Student();t.method(m);23public class Person extends Object public class Student extends Person public class Graduate extends Person-public void
展开阅读全文