《Java的继承机制详解.ppt》由会员分享,可在线阅读,更多相关《Java的继承机制详解.ppt(34页珍藏版)》请在人人文库网上搜索。

1、Java程序设计 继 承,方法重载应遵循三大原则; 适当地重载构造方法,可以使初始化对象的方式更为灵活; this引用总是指向调用成员方法的对象本身; 静态成员(包括静态成员属性和静态成员方法)属于类而不是属于某个对象,可以在实例化对象之前通过类名访问; 使用package关键字打包; 使用import关键字导入包或类。,回顾,相关词汇(蓝色为关键字),对象数组(补充) 理解什么是继承 在Java中实现继承,extends关键字 4种访问控制权限 public protected private 缺省 继承中的构造方法 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 。

3、args) /*创建包含有5个Student引用的数组*/ 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、,面向对象的三大特征,面向对象的程序设计有三大特征: 封装:解决了数据的安全性问题 继承:解决了代码的重用问题 多态:解决了程序的扩展问题 我们来讨论第二大特征继承。,继承的概念,在现实生活中的继承,可以理解为儿子继承了父亲的财产,即财产重用; 面向对象程序设计中的继承,则是代码重用; 继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。,大学系统人员分类树,继承的概念(续),最高层是最普遍的、最一般的情况,往下每一层都比上一层更具体,并包含有高层的特征,通过这样的层次结构使下层的类能自动享用上层类的特点和性质; 继承其实就是自动地共享基类中成员属性和成。

5、员方法的机制。,在Java中实现继承,在Java中实现继承需要使用到extends关键字; 实现继承的一般语法是: 访问修饰符 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 flo。

6、at mGrade; /成绩 public void examination() System.out.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 St。

7、udent(); /实例化学生对象 std.mName = 张三; std.mAge = 18; /为姓名和年龄赋值,访问的是父类中的成员 std.dining(); /调用吃饭的方法,访问的是父类中的成员 std.examination(); /调用考试方法,访问的是子类中的成员 Teacher tea = new Teacher(); /实例化教师对象 tea.mName = 谭浩强; tea.mAge = 65; tea.dining(); tea.prelection(); ,继承的作用,当今软件设计的特征: 软件规模越来越大; 软件设计者越来越多; 软件设计分工越来越细。 引入继承,。

8、实现了代码重用; 引入继承,实现了递增式的程序设计。,继承的作用(续),继承是能自动传播代码和重用代码的有力工具; 继承能够在某些比较一般的类的基础上建造、建立和扩充新类; 能减少代码和数据的重复冗余度,并通过增强一致性来减少模块间的接口和界面,从而增强了程序的可维护性; 能清晰地体现出类与类之间的层次结构关系。,与继承有关的注意事项,继承是单方向的,即派生类可以继承和访问基类中的成员,但基类则无法访问派生类中的成员; 在Java中只允许单一继承方式,即一个派生类只能继承于一个基类,而不能象C+中派生类继承于多个基类的多重继承方式。,类成员的访问控制权限,信息隐藏是面向对象程序设计的重要特点之。

9、一,它可以: 防止类的使用者意外损坏数据; 对任何实现细节所作的修改不会影响到使用该类的其它代码; 使类更易于使用。 在Java中实现信息隐藏的是访问控制权限机制; 访问控制权限包括4个访问修饰符:public、protected、private和缺省; 可以使用上述访问修饰符修饰类的成员。,访问修饰符,访问控制权限(列表),访问修饰符,位 置,课堂练习1,课堂练习2,课堂练习3,源文件SuperClass.java,package aaa; public class SuperClass public int pubA; protected int proB; int defC; priva。

10、te int priD; ,源文件SubClass.java,package bbb; import aaa.SuperClass; public class SubClass extends SuperClass public void fun() pubA = 10; proB = 20; defC = 30; priD = 40; ,类的访问权限,还可以在定义类时为类添加访问修饰符,对类进行访问权限控制; 对类使用的访问修饰符只有public和缺省两种; 被public修饰的类可以从任何地方访问,不受限制; 不加访问修饰符,缺省修饰的类只能从本包中访问,不同包则无法访问到; 但要注意的是。

11、:在一个源文件中只能有一个被public修饰的类,并且文件名必须与public的类同名; 如果要定义多个public的类,则必须分别写在不同的源文件中,一个源文件只写一个类是良好的编程习惯。,继承中的构造方法,父类中的构造方法不能被子类继承,即便它是public的; 父类的构造方法负责初始化属于它的成员变量,而子类的构造方法则只需考虑属于自己的成员变量,不必去关注父类的情况。,继承中的构造方法示例,class ParentClass /定义父类 public ParentClass() /构造方法 System.out.println(这是父类的构造方法。); class ChildClass。

12、 extends ParentClass /子类继承于父类 public ChildClass() /构造方法 System.out.println(这是子类的构造方法。); public class ConstructorTest /该类用于容纳main方法 public static void main(String args) ChildClass cc = new ChildClass(); /实例化子类对象 ,构造方法的执行顺序,当实例化子类的对象时,必须先执行父类的构造方法,然后再执行子类的构造方法; 如果父类还有更上级的父类,就会先调用最高父类的构造方法,再逐个依次地将所有继承关。

13、系的父类构造方法全部执行; 如果父类的构造方法执行失败,那么子类的对象也将无法实例化。,案例,class Point /定义点类 /x轴坐标和y轴坐标,由于准备用于继承,故修饰为protected protected float mX, mY; public Point(float x, float y) /构造方法 mX = x; mY = y; class Circle extends Point /定义圆类继承于点类 protected float mRadius; /半径 public Circle(float r) /构造方法 mRadius = r; public class De。

14、mo public static void main(String args) Circle c = new Circle(2.5f); /实例化圆类对象 ,本例将报出错误,案例分析,在实例化Circle类对象时,虚拟机一定会先调用其父类(Point类)的构造方法; Point类的构造方法需要两个参数来初始化其成员,但此时并没有获得这两个参数,造成Point类的构造方法无法执行; 父类的构造方法执行失败从而导致子类(Circle类)的对象也无法创建; 问题的关键是:在实例化子类对象时,如何将参数传递给父类的构造方法?这将使用到super关键字。,super关键字的第一种用途,在Java中,su。

15、per关键字有两个主要用途; 第一种用途是:在子类的构造方法中,super关键字可以显式地调用父类的构造方法,用于将参数传递给它; 其一般语法是: super(实际参数); 需要注意的是:该语句必须是子类构造方法的第一条语句。,super关键字示例1,class Point /定义点类 protected float mX, mY; /x轴坐标和y轴坐标 public Point(float x, float y) /构造方法 mX = x; mY = y; class Circle extends Point /定义圆类继承于点类 protected float mRadius; /半径 p。

16、ublic Circle(float x, float y, float r) /构造方法 super(x, y); /显式调用父类构造方法,必须是第一条语句 mRadius = r; ,super关键字的第二种用途,如果父类和子类中有同名成员,在子类中默认访问是属于自己的那一个成员; super关键字可以明确地指定要访问父类中的成员; 其一般语法是: super.成员名; 前提条件是:父类中的该成员不是private的。,super关键字示例2,/定义父类 class SuperClass protected int num; /定义子类,继承于父类 class SubClass exten。

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

java 继承 ppt_Java的继承机制详解.ppt相关推荐

  1. java反射模式_Java反射机制详解

    对于一般的开发者,很少需要直接使用Java反射机制来完成功能开发,但是反射是很多框架譬如 Spring, Mybatis 实现的核心,反射虽小,能量却很大. 本文主要介绍反射相关的概念以及API的使用 ...

  2. Java进阶 | Proxy动态代理机制详解

    一.Jvm加载对象 在说Java动态代理之前,还是要说一下Jvm加载对象的过程,这个依旧是理解动态代理的基础性原理: Java类即源代码程序.java类型文件,经过编译器编译之后就被转换成字节代码.c ...

  3. java 求正割_Java 反射机制详解

    动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ru ...

  4. Java基础篇:反射机制详解

    反射机制 反射机制.反射含义 1.利用反射获取类对象的三种方法 2.利用反射获取类对象的类名.方法.属性 3.利用反射获取类对象中的构造器.构造器参数类型.实例化构造器 实例化重点 类的加载方式不同 ...

  5. Java基础篇:回调机制详解

    一.什么是回调: 回调是一种双向的调用模式,程序模块之间通过这样的接口调用完成通信联系,回调的核心就是回调方将本身即this传递给调用方,这样调用方就可以在调用完毕之后再告诉回调方它想要知道的信息. ...

  6. 反射 数据类型_Java基础:反射机制详解

    一.什么是反射: (1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法.本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取t对 ...

  7. java 深拷贝_java 深拷贝与浅拷贝机制详解

    java 深拷贝与浅拷贝机制详解 概要: 在Java中,拷贝分为深拷贝和浅拷贝两种.java在公共超类Object中实现了一种叫做clone的方法,这种方法clone出来的新对象为浅拷贝,而通过自己定 ...

  8. 【java】SPI机制详解

    1.概述 以前的文章:[SPI]java基础之SPI框架实现 转载:Java常用机制 - SPI机制详解 PI(Service Provider Interface),是JDK内置的一种 服务提供发现 ...

  9. Java虚拟机中类加载机制详解

    Java虚拟机中类加载机制详解 1,什么是java类加载机制 **首先在java中,是通过编译来生成.class文件(可能在本地,或者网页下载),java的类加载机制就是 将这些.class文件加载到 ...

  10. java有返回值的方法回调_java调用回调机制详解

    调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...

最新文章

  1. 【数据库】sqlite3数据库备份、导出方法汇总
  2. 最新Java面试题2021年,常见面试题及答案汇总
  3. ML之多分类预测之PLiR:使用PLiR实现对六类label数据集进行多分类
  4. Html 教程 (5) “表格”三要素
  5. Delphi中methodaddress的代码解析
  6. 使用swipecard实现卡片视图左右滑动监听以及点击监听
  7. select,epoll的比较
  8. linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解
  9. docker学习(7) docker-compose使用示例
  10. matplotlib(一):散点图
  11. 教你如何迅速秒杀掉:99%的海量数据处理面试题
  12. MacOS实现MSDOS格式化为NTFS文件系统
  13. python3 模板库 好用_关于3个Python模板库的比较
  14. 党政信创建设进入新发展阶段的三大趋势
  15. 今天讲一下完整的前端模块化,很实用
  16. [转帖]龙芯下一代处理器微结构GS464E细节曝光
  17. 深入浅出讲解 Python 元类(Metaclass)的使用
  18. [c#]图书ISBN信息批量查询工具开发手记
  19. PE 格式详解与试验
  20. 科力锐勒索拦截系统:解决勒索病毒“勒索+窃取”双重威胁的特效药!

热门文章

  1. php花店会员信息管理系统,PHP网上花店管理系统
  2. 将在PPT中画的图 导入 word,保存矢量图格式
  3. windows bat文件更改为 exe文件
  4. Delphi微信公众号开发
  5. 蓝牙的重命名与波特率修改
  6. 移动机顶盒migu-jt-u1 unt400c刷机 hi3798 root
  7. 常用公差配合表图_常用的机械测量工具竟然这么多?你知道几个?
  8. CVPR 2021 论文大盘点-去雾去模糊篇
  9. java基础面试题84道
  10. 大文件上传下载实现思路,分片、断点续传代码实现,以及webUpload组件