第04章 面向对象编程_07继承和多态
更新时间:2023-07-23 09:43:01 阅读量: 实用文档 文档下载
- 第04章 男装身份败露推荐度:
- 相关推荐
详细的java课件(全部)
第四章 面向对象编程
详细的java课件(全部)
本章主要内容4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 简介 面向对象的基本概念 面向对象的基本语法 类和包 类的方法 对象 继承和多态 接口和抽象类 面向对象开发概念
详细的java课件(全部)
课程回顾定义类的方法的步骤是什么? 类中的一个方法如何调用类的另一个方法? 类中的一个方法如何调用另一个类的方法? 分别说明成员变量和局部变量的作用域。 如何给类的方法添加JavaDoc注释?
详细的java课件(全部)
本章目标掌握继承 掌握super关键字 掌握多态
详细的java课件(全部)
4.6 继承和多态
计算机语言设计犹如在 公园里漫步。我是说侏 罗纪公园 。 ——Larry Wall(Perl 语言之父)
详细的java课件(全部)
生活中的继承生活中,继承的例子随处可见动物 谁是父类? 谁是子类? 能说出继承的特点吗?
食草动物
食肉动物
继承需要符合的关系:is-a,父类更通用、子类更具体
详细的java课件(全部)
生活中的继承子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗? 汽车 引擎数量 外观颜色 刹车 加速 属性 行为
请问:出租车包 含哪些属性和行 为呢? 最大载客数量 报站 最大载重量 卸货 所属公司 最大载客数量 打发票
详细的java课件(全部)
4.6.1 类和类的继承类的设计其实是对现有世界的模仿 在继承中,一般常见的有属性继承,属性隐藏,方法继承,方法覆盖,方法重 载等技术。在Java语言中,用extends关键字来表示一个类继承了另一个类 在父类中只定义一些通用的属性与方法 子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法 子类的构造方法中,通过super关键字调用父类的构造方法 方法重写后,通过super关键字调用父类的方法 在Java 中,所有的Java类都直接或间接地继承了ng.Object类
详细的java课件(全部)
如何实现继承 3-1在Java语言中,用extends关键字来表示一个类继承了另一个类,例如:public class Woman extends Human { //其余代码省略 其余代码省略 }
在父类中只定义一些通用的属性与方法,例如:public class Human { private String name; private String school; public Human(String name, String sex, int age){ //初始化属性值 初始化属性值 } public void canEat(){ } public void breath() { } }
详细的java课件(全部)
子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法 如何实现继承 3-2public class Human{ private String name; // 教员姓名 private String sex;// 所在中心 public Human (String myName, String mySex) { //初始化属性值 初始化属性值 } public void sayHello() { //方法的具体实现 方法的具体实现 } 父类中的属性和方法可以被 } 子类继承
public class Father extends Human { public Father(String myName, String mySex) { super(myName, mySex); } public void sayHello(){ System.out.println(“你好
,我是爸爸 “你好,我是爸爸"); super.sayHello(); } } 由于sayHello()方法与父类的实 由于 方法与父类的实 现有所不同, 现有所不同,因此重写了该方 法
方法重写:子类和父类的方法具有相同的名称、参数列表、 方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型
详细的java课件(全部)
如何实现继承 3-3子类的构造方法中,通过super关键字调用父类的构造方法public class Father extends Human { public Father(String myName, String mySex) { super(myName, mySex); 通过调用父类的构造方法, 通过调用父类的构造方法,完成 } 对属性值的初始化 }
方法重写后,通过super关键字调用父类的方法public class Father extends Human { public void sayHello(){ System.out.println(“你好,我是爸爸 “你好,我是爸爸"); super.sayHello(); } }
详细的java课件(全部)
一切类的“祖先”——Objectpublic class MyObject { //… }
在Java 中,所有的Java类都直接或间接地继承了ng.Object类public class MyObect extends Object { //… }
中调用MyObject对象 在Eclipse中调用 中调用 对象 的成员, 的成员,会自动弹出继承自 Object的所有方法 的所有方法
详细的java课件(全部)
4.6.1 类和类的继承函数的覆盖和重载的区别
详细的java课件(全部)
4.6.1 类和类的继承重载的情况下,子类的访问权限比父类要大。 参看课本例4.15 Man类: 用于测试Man类的程序:
详细的java课件(全部)
为什么需要多态 5-1在Woman/Man类的基础上,开发一个类用来判断,负责对Woman、Man中 的方法进行判断:1、打招呼
详细的java课件(全部)
为什么需要多态 5-2第一种解决方案public class Judge { public void judge(Man man){ man.sayHello(); man.isFather(); } public void judge(Woman woman){ woman.sayHello(); woman.isMother(); } public static void main(String[] args){ Man lisi = new Man("李四 男"); 李四","男 李四 Woman lili = new Woman("李丽 女"); 李丽","女 李丽 Judge judge = new Judge(); judge.judge(lisi); judge.judge(lili); } }
我继承于Human类,是个男性 大家好,我是李四,是个男人 我继承于Human类,是个女性 大家好,我是李丽,是个女人
控制台输出
详细的java课件(全部)
为什么需要多态 5-3现在,升级人类,增加一种新类型:Boy 同时,Judge也负责对这类进行评估
详细的java课件(全部)
为什么需要多态 5-4如果在第一种解决方案的基础上去解决,我们需要如下两个步骤:建立Boy类 修改Judge类,增加方法:judge(Boy boy)
能找到这个解决方案的弊端吗? 能找到这个解决方案的弊端吗?每增加一种新的人类型,都要修Judge类,增加相应的judge(评估) 方法,代码的可扩展性及可维护性极差
详细的java课件(全部)
为什么需要多态 5-5
第二种解决方案——使用多态
可以接收子类类型 public class JudgeAll { public void judge(Human human){ human.sayHello(); } 根据实际创建的对象类型 调用相应方法 public static void main(String[] args) { JudgeAll judgeal
l = new JudgeAll(); judgeall.judge(lisi); judgeall.judge(lili); judgeall.judge(xiaoming); 控制台输出 } }
我继承于Human类,是个男性 大家好,我是李四,是个男人 我继承于Human类,是个女性 大家好,我是李丽,是个女人
我继承于Human类,是个男孩,还没
使用多态之后,当需要增加新的子类类型时,无需更改Judge类,程序的 可扩展性及可维护性增强
详细的java课件(全部)
什么是多态
简单来说,多态是具有表现多种形态的能力的特征 同一个实现接口,使用不同的实例而执行不同操作打印机
打印 打印 黑白打印机 彩色打印机
打印效果: 打印效果:彩色
打印效果: 打印效果:黑白
详细的java课件(全部)
如何实现多态1、子类重写父类的方法 2、编写方法时,使用父类定义的方法 3、运行时,根据实际创建的对象类型动态决定使用哪个方法public class Human { public class Test { public void sayHello(){ System.out.println("大家好,我是" + name +public static void main(String[ ] args) { ", JudgeAll judgeall = new JudgeAll(); 是个" + sex + "人"); judgeAll.judge(new Boy()); } } } } public class Boy extends Human { public void sayHello(){ public System.out.println("我继承于Human类,是个男孩, class JudgeAll { public void judge(Human human){ 还没有成年"); human.sayHello(); } 1 } } }
3
2
正在阅读:
第04章 面向对象编程_07继承和多态07-23
无线传感网络研究与运用综述08-07
第七章氧化还原平衡电化学01-22
工程结构可靠度计算的Matlab实现07-28
某弱电工程楼宇自控系统设计方案 - 图文05-11
生产安全事故综合应急预案(按照2013版导则格式)09-18
关于承包地权属情况的调查报告09-28
《餐饮服务食品安全操作规范》(新版)03-24
老萨的历史真相档案之四十12-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 多态
- 继承
- 面向
- 对象
- 编程
- 07
- 政法学院团总支工作职责
- (备战2012)2011中考化学试题分类解析 综合应用题
- 卫星电视节目参数表
- 云南省昆明一中教育集团2021届高二升高三诊断性考试文科数学试题含解析
- 新学期新起点 新希望
- 必修三第一单元检测题
- 人教课标板小学四年级语文上册 26 那片绿绿的爬山虎 公开课教学设计
- 基于单片机温度检测与红外遥控控制系统的设计
- 《马克思主义基本原理概论》练习题库新
- 机动车商业保险行业基本费率表C款
- 新经济时代的人力资源管理
- 福喜过期肉舆情案例深度分析
- 沙盘游戏中应注意的问题
- 标准件采购合同范本
- 高层述职报告模板
- 柴油发电机工作原理
- 广西横县平马镇初级中学2014届九年级英语上学期第二次月考试题
- 泰国佛牌知识最全面版本
- L66A楼工程质量评估报告 (2)
- 二级建造施工复习要点:建筑腻子作用及施工工艺(1)