ImageVerifierCode 换一换
格式:PPT , 页数:34 ,大小:537.50KB ,
资源ID:1293587      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1293587.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java继承.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java继承.ppt

1、继 承,第 四 章(上),方法重载应遵循三大原则;适当地重载构造方法,可以使初始化对象的方式更为灵活;this引用总是指向调用成员方法的对象本身;静态成员(包括静态成员属性和静态成员方法)属于类而不是属于某个对象,可以在实例化对象之前通过类名访问;使用package关键字打包;使用import关键字导入包或类。,回顾,本章相关词汇(蓝色为关键字),本章目标,对象数组(补充)理解什么是继承在Java中实现继承,extends关键字4种访问控制权限publicprotectedprivate缺省继承中的构造方法super关键字,对象数组,在Java中不但可以声明由原始数据组成的数组,还可以声明由对

2、象组成的数组;声明对象数组的方式如:但上述方式类似于C语言中的:struct Student*p=NULL;p=(struct Student*)malloc(5*sizeof(struct Student*);/只是声明了一个指针数组,没有任何实际的结构体变量,/假设已经定义了一个Student类/*声明由5个Student对象组成的数组*/Student stdAry=new Student5;,对象数组=引用数组,对象数组示例,/*对象数组示例,假设已经定义了Student类*/public static void main(String args)/*创建包含有5个Student引用的

3、数组*/Student stdAry=new Student5;/*逐一为每个引用创建对象实例*/stdAry0=new Student(张三,18);stdAry1=new Student(李四,20);stdAry2=new Student(王五,24);stdAry3=new Student(郑六,21);stdAry4=new Student(田七,19);for(int i=0;i stdAry.length;i+)stdAryi.display();,对象数组的存放形式,面向对象的三大特征,面向对象的程序设计有三大特征:封装:解决了数据的安全性问题继承:解决了代码的重用问题多态:解

4、决了程序的扩展问题前面的章节我们已经学习了有关于封装的各个概念,这一章我们来讨论第二大特征继承。,继承的概念,在现实生活中的继承,可以理解为儿子继承了父亲的财产,即财产重用;面向对象程序设计中的继承,则是代码重用;继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。,大学系统人员分类树,继承的概念(续),最高层是最普遍的、最一般的情况,往下每一层都比上一层更具体,并包含有高层的特征,通过这样的层次结构使下层的类能自动享用上层类的特点和性质;继承其实就是自动地共享基类中成员属性和成员方法的机制。,在Java中实现继承,在Java中实现继承需要使用到exte

5、nds关键字;实现继承的一般语法是:访问修饰符 class 派生类名 extends 基类名 成员列表如:class Student extends Person,实现继承示例,class Person/定义人类 public String mName;/姓名 public int mAge;/年龄 public void dining()System.out.println(吃饱了.);/吃饭的方法class Student extends Person/学生类继承于人类 public float mGrade;/成绩 public void examination()System.out.

6、println(考试及格了.);/考试的方法class Teacher extends Person/教师类继承于人类 public float mSalary;/薪水 public void prelection()System.out.println(上课很累.);/上课的方法public class InheritanceDemo/该类用于容纳main方法 public static void main(String args)Student std=new Student();/实例化学生对象 std.mName=张三;std.mAge=18;/为姓名和年龄赋值,访问的是父类中的成员

7、std.dining();/调用吃饭的方法,访问的是父类中的成员 std.examination();/调用考试方法,访问的是子类中的成员 Teacher tea=new Teacher();/实例化教师对象 tea.mName=谭浩强;tea.mAge=65;tea.dining();tea.prelection();,继承的作用,当今软件设计的特征:软件规模越来越大;软件设计者越来越多;软件设计分工越来越细。引入继承,实现了代码重用;引入继承,实现了递增式的程序设计。,继承的作用(续),继承是能自动传播代码和重用代码的有力工具;继承能够在某些比较一般的类的基础上建造、建立和扩充新类;能减少

8、代码和数据的重复冗余度,并通过增强一致性来减少模块间的接口和界面,从而增强了程序的可维护性;能清晰地体现出类与类之间的层次结构关系。,与继承有关的注意事项,继承是单方向的,即派生类可以继承和访问基类中的成员,但基类则无法访问派生类中的成员;在Java中只允许单一继承方式,即一个派生类只能继承于一个基类,而不能象C+中派生类继承于多个基类的多重继承方式。,类成员的访问控制权限,信息隐藏是面向对象程序设计的重要特点之一,它可以:防止类的使用者意外损坏数据;对任何实现细节所作的修改不会影响到使用该类的其它代码;使类更易于使用。在Java中实现信息隐藏的是访问控制权限机制;访问控制权限包括4个访问修饰

9、符:public、protected、private和缺省;可以使用上述访问修饰符修饰类的成员。,访问修饰符,访问控制权限(列表),访问修饰符,位 置,课堂练习1,课堂练习2,课堂练习3,源文件SuperClass.java,package aaa;public class SuperClass public int pubA;protected int proB;int defC;private int priD;,源文件SubClass.java,package bbb;import aaa.SuperClass;public class SubClass extends SuperCla

10、ss public void fun()pubA=10;proB=20;defC=30;priD=40;,类的访问权限,还可以在定义类时为类添加访问修饰符,对类进行访问权限控制;对类使用的访问修饰符只有public和缺省两种;被public修饰的类可以从任何地方访问,不受限制;不加访问修饰符,缺省修饰的类只能从本包中访问,不同包则无法访问到;但要注意的是:在一个源文件中只能有一个被public修饰的类,并且文件名必须与public的类同名;如果要定义多个public的类,则必须分别写在不同的源文件中,一个源文件只写一个类是良好的编程习惯。,继承中的构造方法,父类中的构造方法不能被子类继承,即便

11、它是public的;父类的构造方法负责初始化属于它的成员变量,而子类的构造方法则只需考虑属于自己的成员变量,不必去关注父类的情况。,继承中的构造方法示例,class ParentClass/定义父类 public ParentClass()/构造方法 System.out.println(这是父类的构造方法。);class ChildClass extends ParentClass/子类继承于父类 public ChildClass()/构造方法 System.out.println(这是子类的构造方法。);public class ConstructorTest/该类用于容纳main方法

12、public static void main(String args)ChildClass cc=new ChildClass();/实例化子类对象,构造方法的执行顺序,当实例化子类的对象时,必须先执行父类的构造方法,然后再执行子类的构造方法;如果父类还有更上级的父类,就会先调用最高父类的构造方法,再逐个依次地将所有继承关系的父类构造方法全部执行;如果父类的构造方法执行失败,那么子类的对象也将无法实例化。,案例,class Point/定义点类/x轴坐标和y轴坐标,由于准备用于继承,故修饰为protected protected float mX,mY;public Point(float

13、x,float y)/构造方法 mX=x;mY=y;class Circle extends Point/定义圆类继承于点类 protected float mRadius;/半径 public Circle(float r)/构造方法 mRadius=r;public class Demo public static void main(String args)Circle c=new Circle(2.5f);/实例化圆类对象,本例将报出错误,案例分析,在实例化Circle类对象时,虚拟机一定会先调用其父类(Point类)的构造方法;Point类的构造方法需要两个参数来初始化其成员,但此时

14、并没有获得这两个参数,造成Point类的构造方法无法执行;父类的构造方法执行失败从而导致子类(Circle类)的对象也无法创建;问题的关键是:在实例化子类对象时,如何将参数传递给父类的构造方法?这将使用到super关键字。,super关键字的第一种用途,在Java中,super关键字有两个主要用途;第一种用途是:在子类的构造方法中,super关键字可以显式地调用父类的构造方法,用于将参数传递给它;其一般语法是:super(实际参数);需要注意的是:该语句必须是子类构造方法的第一条语句。,super关键字示例1,class Point/定义点类 protected float mX,mY;/x轴

15、坐标和y轴坐标 public Point(float x,float y)/构造方法 mX=x;mY=y;class Circle extends Point/定义圆类继承于点类 protected float mRadius;/半径 public Circle(float x,float y,float r)/构造方法 super(x,y);/显式调用父类构造方法,必须是第一条语句 mRadius=r;,super关键字的第二种用途,如果父类和子类中有同名成员,在子类中默认访问是属于自己的那一个成员;super关键字可以明确地指定要访问父类中的成员;其一般语法是:super.成员名;前提条件

16、是:父类中的该成员不是private的。,super关键字示例2,/定义父类class SuperClass protected int num;/定义子类,继承于父类class SubClass extends SuperClass protected int num;/子类中有与父类成员同名的成员 public void fun()num=10;/默认访问自己的成员 super.num=20;/指定访问父类的成员,总结,对象数组中存放的并不是对象本身,而是对象的引用;继承是从一个现有的类(基类)派生出一个新类(派生类)的过程,要使用关键字extends,继承可以达到代码重用的目的,使程序更易于扩展;对于类成员来说,可以使用4个访问修饰符来控制其访问权限:public、protected、缺省和private;对于类来说,也有两个访问修饰符可用,即public和缺省;继承中,构造方法的执行顺序遵循先父类再子类的原则;super关键字的两种使用方法都与父类有关。,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1