面向对象的Java实现封装2
时间:2025-07-03
时间:2025-07-03
面向对象的Java实现封装
第二章面向对象的Java实现 继承和多态 实现-继承和多态 面向对象的 实现
面向对象的Java实现封装
回顾
在Java程序中,代码封装带给我们的好处是什么? 程序中,代码封装带给我们的好处是什么? 程序中 举例说明什么是方法重载? 举例说明什么是方法重载? Java中的构造方法与实例方法,有什么区别? 中的构造方法与实例方法,有什么区别? 中的构造方法与实例方法
面向对象的Java实现封装
预习检查
举例说明在什么样的情况下,需要使用到继承? 举例说明在什么样的情况下,需要使用到继承? 程序中, 在Java程序中,多态性带给我们的好处是什么? 程序中 多态性带给我们的好处是什么?
面向对象的Java实现封装
本章任务
升级HelloACCP,输出ACCP5.0教员的基本信息: ,输出 教员的基本信息: 升级 教员的基本信息 使用继承提高代码的复用性 使用多态提高代码的可扩展性及可维护性
面向对象的Java实现封装
本章目标
掌握继承 掌握super关键字 掌握 关键字 掌握多态
面向对象的Java实现封装
生活中的继承 2-1生活中, 生活中,继承的例子随处可见动物 谁是父类? 谁是父类? 谁是子类? 谁是子类? 能说出继承的特点吗? 能说出继承的特点吗?
食草动物
食肉动物
继承需要符合的关系: 继承需要符合的关系:is-a,父类更通用,子类更具体 ,父类更通用,6
面向对象的Java实现封装
生活中的继承 2-2子类具有父类的一般特性(包括属性和行为),以及自身 子类具有父类的一般特性(包括属性和行为),以及自身 ), 特殊的特性巴士是汽车吗? 巴士是汽车吗? 卡车是汽车吗? 卡车是汽车吗? 出租车是汽车吗? 出租车是汽车吗? 汽车 引擎数量 外观颜色 刹车 加速 属性 行为
请问: 请问:出租车 包含哪些属性 和行为呢? 和行为呢? 最大载客数量 报站 最大载重量 卸货 所属公司 最大载客数量 打发票7
面向对象的Java实现封装
为什么需要继承 4-1
开发ACCP教员类,其中教员分为Java教员以及 教员类,其中教员分为 教员以及.NET教 开发 教员类 教员以及 教 各自的要求如下: 员,各自的要求如下:Java教员 教员属性:姓名, 属性:姓名,所属中心 方法:授课(步骤:打开Eclipse,实施理论课授课),自我介绍 ),自我介绍 方法:授课(步骤:打开 ,实施理论课授课),
.NET教员 教员属性:姓名, 属性:姓名,所属中心 方法:授课(步骤:打开Visual studio 2005,实施理论课授课), 方法:授课(步骤:打开 ,实施理论课授课), 自我介绍
面向对象的Java实现封装
为什么需要继承 4-2请问:以下这个解决方案中存在着什么问题? 请问:以下这个解决方案中存在着什么问题?public class AccpDotNetTeacher { private String name; // 教员姓名 public class AccpJavaTeacher { private String name; // 教员姓名 private String school; // 所在中心 private String school; // 所在中心 public AccpDotNetTeacher(String public AccpJavaTeacher(String myName, myName, String mySchool) { String mySchool) { name = myName; name = my
Name; school = mySchool; school = mySchool; } } public void giveLession(){ System.out.println("启动 Visual public void giveLession(){ 启动 System.out.println("启动 Eclipse"); 启动 Studio 2005"); System.out.println("知识点讲解 知识点讲解"); 知识点讲解 System.out.println("知识点讲解 知识点讲解"); 知识点讲解 System.out.println("总结提问 总结提问"); 总结提问 System.out.println("总结提问 总结提问"); 总结提问 } } public void introduction() { public void introduction() { System.out.println("大家好!我是 大家好! 大家好 我是" System.out.println("大家好!我是 大家好! 大家好 我是" + school + "的" + name + "."); 的 + school + "的" + name + "."); 的 } } 9 代码存在重复,违背了" 代码存在重复,违背了} write once, only once"的原则 " 的原则 }
面向对象的Java实现封装
为什么需要继承 4-3如何改进?有没有可能建立继承关系, 如何改进?有没有可能建立继承关系,让子类自动继承父 类的属性和方法? 类的属性和方法?Java教员是教员吗? 教员是教员吗? 教员是教员吗 .NET教员是教员吗? 教员是教员吗? 教员是教员吗 教员 姓名 所在中心 授课 自我介绍 public class AccpTeacher { private String name; // 教员姓名 private String school; // 所在中心 public AccpTeacher(String myName, 属 String mySchool) { 性 name = myName; 行 school = mySchool; 为 } public void giveLesson(){ System.out.println("知识点讲解 知识点讲解"); 知识点讲解 System.out.println("总结提问 总结提问"); 总结提问 } public void introduction() { System.out.println("大家好!我是 大家好! 大家好 " + school + "的" + name + "."); 的 . 现在, 现在,所有子类中相同的代 } 10 码都抽取到父类中了 }
Java教员 教员
.NET教员 教员
面向对象的Java实现封装
为什么需要继承 4-4public class AccpJavaTeacher2 extends AccpTeacher { public AccpJavaTeacher2(String myName, String mySchool) { super(myName, mySchool); 子类自动继承父类的属 } 性和方法, 性和方法,子类中不再 public void giveLesson(){ 存在重复代码 System.out.println("启动 Eclipse"); 启动 super.giveLesson(); } } public class AccpDotNetTeacher2 extends AccpTeacher …… 此处隐藏:4257字,全部文档内容请下载后查看。喜欢就下载吧 ……