欢迎来到天天文库
浏览记录
ID:51962612
大小:2.75 MB
页数:41页
时间:2020-03-26
《面向对象特性:继承和多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象特性:继承和多态回顾在Java程序中,代码封装带给我们的好处是什么?举例说明什么是方法重载?Java中的构造方法与实例方法,有什么区别?2本章任务升级HelloWorld,输出Oracle职员的基本信息:使用继承提高代码的复用性使用多态提高代码的可扩展性及可维护性3掌握继承掌握super关键字掌握多态本章目标4生活中的继承2-1生活中,继承的例子随处可见动物食草动物食肉动物谁是父类?谁是子类?能说出继承的特点吗?继承需要符合的关系:is-a,父类更通用、子类更具体5生活中的继承2-2子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性巴士是汽车吗?卡车是汽车吗?出租车是汽
2、车吗?最大载客数量报站引擎数量外观颜色刹车加速汽车最大载重量卸货所属公司最大载客数量打发票属性行为请问:出租车包含哪些属性和行为呢?6为什么需要继承4-1开发Oracle职员类,其中职员分为Java职员以及.NET职员,各自的要求如下:Java职员属性:姓名、所属中心方法:编写代码(步骤:启动java开发工具、开始编码)、自我介绍.NET职员属性:姓名、所属中心方法:编写代码(步骤:启动.NET开发工具、开始编码)、自我介绍7请问:以下这个解决方案中存在着什么问题?为什么需要继承4-2publicclassOracleDotNetStaff{privateStringname;//职员姓
3、名privateStringschool;//所在中心publicOracleDotNetStaff(StringmyName,StringmySchool){name=myName;school=mySchool;}publicvoidgiveLession(){System.out.println(“启动.net开发工具");System.out.println(“开始编码");}publicvoidintroduction(){System.out.println("大家好!我是"+school+"的"+name+".");}}publicclassOracleJavaStaff{
4、privateStringname;//职员姓名privateStringschool;//所在中心publicOracleJavaStaff(StringmyName,StringmySchool){name=myName;school=mySchool;}publicvoidgiveLession(){System.out.println("启动java开发工具");System.out.println("开始编码");}publicvoidintroduction(){System.out.println("大家好!我是"+school+"的"+name+".");}}代码存在重复
5、,违背了“writeoncerunanywhere”的原则8为什么需要继承4-3如何改进?有没有可能建立继承关系,让子类自动继承父类的属性和方法?Java职员是职员吗?.NET职员是职员吗?publicclassOracleStaff{privateStringname;//职员姓名privateStringschool;//所在中心publicOracleStaff(StringmyName,StringmySchool){name=myName;school=mySchool;}publicvoidgiveLesson(){System.out.println(“开始编码");}pu
6、blicvoidintroduction(){System.out.println("大家好!我是“+school+"的"+name+"。");}}现在,所有子类中相同的代码都抽取到父类中了属性行为姓名所在中心编码自我介绍职员Java职员.NET职员9为什么需要继承4-4publicclassOracleJavaStaff2extendsOracleStaff{publicOracleJavaStaff2(StringmyName,StringmySchool){super(myName,mySchool);}publicvoidgiveLesson(){System.out.pri
7、ntln(“启动java开发工具");super.giveLesson();}}publicclassOracleDotNetStaff2extendsOracleStaff{publicOracleDotNetStaff2(StringmyName,StringmySchool){super(myName,mySchool);}publicvoidgiveLesson(){System.out.println("启动.NET开发工
此文档下载收益归作者所有