清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第8章 继承、多型

第8章 继承、多型 继承 多型
第8章 • 继承、多型 – 继承 – 多型

扩充( extends)父类别 使用" extends"作为其扩充父类别的矢键词 public class bird i private string name; public Bird( public bird(string name) I this name name public void walk() i System.out. print1n("走路") public string getName()[ return name; public void setName(string name) i this name aime i
扩充(extends)父类别 • 使用"extends"作为其扩充父类别的关键词 public class Bird { private String name; public Bird() { } public Bird(String name) { this.name = name; } public void walk() { System.out.println("走路"); } public String getName() { return name; } public void setName(String name) { this.name = name; } }

扩充( extends)父类别 pub1 ic class chickenextends bird{//扩充Bird类另 private string crest;//新增私有成员,鸡冠描迹 public Chicken()f super()i) //定义建构方法 public Chicken(String name, String crest)i super(name)i this crest cresti //新增方法 ublic void setCrest(string crest) t this crest crest public String getcrest()i return cresti public void wu()i System.out. print1n("咕咕叫.");
扩充(extends)父类别 public class Chickenextends Bird { //扩充Bird类别 private String crest; //新增私有成员,鸡冠描述 public Chicken() {super(); } //定义建构方法 public Chicken(String name, String crest) { super(name); this.crest = crest; } //新增方法 public void setCrest(String crest) { this.crest = crest; } public String getCrest() { return crest; } public void wu() { System.out.println("咕咕叫…"); } }

扩充( extends)父类别 Chicken chicken1= new Chicken("小克","红色小鸡冠"); Chicken chicken new Chicken(i System.out. printf("小雞1-名称号s,鸡冠是号s。\n", chicken getName(), chicken. getcrest ())i chicken. wu() System. out.printf("小雞2-名称号s,鸡冠是号s。\n", chicken getName(), chicken. getcrest())i chicken. wu()i
扩充(extends)父类别 Chicken chicken1 = new Chicken("小克","红色小鸡冠"); Chicken chicken2 = new Chicken(); System.out.printf("小雞1 -名称%s,鸡冠是%s。\n", chicken1.getName(), chicken1.getCrest()); chicken1.wu(); System.out.printf("小雞2 -名称%s,鸡冠是%s。\n", chicken2.getName(), chicken2.getCrest()); chicken2.wu();

被保护的( protected)成员 保护意思表禾存取该成员是有条件限制的 继承的类别就可以直接使用这些成员,但 这些成员仍然受到保护 °不同套件( package)的对象不可直接呼叫 使用 protected成员
被保护的(protected)成员 • 保护意思表示存取该成员是有条件限制的 • 继承的类别就可以直接使用这些成员,但 这些成员仍然受到保护 • 不同套件(package)的对象不可直接呼叫 使用protected成员

被保护的( protected)成员 public class Rectangle //受保护的 member protected int xi protected int yi protected int width protected int height public class Cubicextends Rectangle i public int getvolumn() //可以直接使用父类别中的 width丶 height成员 return length* width*height
被保护的(protected)成员 public class Rectangle { //受保护的member protected int x; protected int y; protected int width; protected int height; … } public class CubicextendsRectangle { … public int getVolumn() { //可以直接使用父类别中的width、height成员 return length*width*height; } }

重新定义( Override)方法 如果父类别中的定义并不符合您的需求, 可以在扩充类别的同时重新定义 ·可以重新定义方法的实作内容、成员的访 问权限,或是成员的返回值型态
重新定义(Override)方法 • 如果父类别中的定义并不符合您的需求, 可以在扩充类别的同时重新定义 • 可以重新定义方法的实作内容、成员的访 问权限,或是成员的返回值型态

重新定义( Override)方法 public class simplearray i protected int[] array public SimpleArray (int i)t array= new int[i]氵 public void setTlement(int i, int data) t array [i data public class SafeArrayextends simpleArray i //重新定义setE1 ement() public void setElementint i, int data)( if(i< arraylength) super setTlement(i data)i
重新定义(Override)方法 public class SimpleArray { protected int[] array; public SimpleArray(int i) { array = new int[i]; } public void setElement(int i, int data) { array[i] = data; } .... } public class SafeArrayextends SimpleArray { … //重新定义setElement() public void setElement(int i, int data) { if(i < array.length) super.setElement(i, data); } .... }

重新定义( Override)方法 实际运作的对象是 Safe Array的实例,所以 被呼叫执行的会是 SafeArray中重新定义过 的 setTlement0方法 Simp leArray simpleArray new SafeArray ( simpleArray. setTlement()i
重新定义(Override)方法 SimpleArray simpleArray = new SafeArray(); simpleArray.setElement(); • 实际运作的对象是SafeArray的实例,所以 被呼叫执行的会是SafeArray中重新定义过 的setElement()方法

重新定义( Override)方法 在衍生类别中想要呼叫基类的建构方法 可以使用 super0方法 要在衍生类别中呼叫基类方法,则可以如 使用 super methodName 条件限制 父类别中的方法或建构方法不能是" private" 也就是不能是私用成员
重新定义(Override)方法 • 在衍生类别中想要呼叫基类的建构方法, 可以使用super()方法 • 要在衍生类别中呼叫基类方法,则可以如 使用super.methodName() • 条件限制 – 父类别中的方法或建构方法不能是"private", 也就是不能是私用成员
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第7章 封装.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第6章 字串.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第5章 数组.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第4章 从autoboxing、unboxing认识对象.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第3章 语法入门.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第2章 入门准备.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第1章 了解Java.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第1章 oracle数据库概述.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第16章 基于Oracle数据库的应用开发.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第15章 PLSQL程序设计.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第14章 SQL语言基础.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第13章 网络管理.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第12章 数据库备份与恢复.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第11章 安全管理.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第10章 模式对象.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第9章 数据库的启动与关闭.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第8章 数据库实例与操作模式.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第7章 逻辑存储结构.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第6章 物理存储结构.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第5章 SQLPLUS.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第9章 管理类别档案.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第10章 例外处理.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第11章 枚举类型.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第12章 泛型(Generics).ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第13章 对象容器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第14章 输入、输出.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第15章 线程.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第16章 反射.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第17章 Annotation.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第18章 舍遗补缺.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第19章 文本编辑器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第20章 JDBC入门.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第21章 Java SE6新功能简介.ppt
- 《C语言程序设计》课程教学资源(PPT课件)PPT课件 第五章 数组.ppt
- 南开大学:《上机试习题集—二级C语言程序设计》PDF电子书(编程和改错各100例).pdf
- 《Flash动画设计教程》PPT教学课件(共五章).ppt
- 陕西科学技术出版社:《计算机基础实用教程》PDF电子书(共六章).pdf
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 系统设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论(主讲:郑莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt