資源描述:
《面向?qū)ο筇匦裕豪^承和多態(tài)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、面向?qū)ο筇匦裕豪^承和多態(tài)回顧在Java程序中,代碼封裝帶給我們的好處是什么?舉例說明什么是方法重載?Java中的構(gòu)造方法與實(shí)例方法,有什么區(qū)別?2本章任務(wù)升級(jí)HelloWorld,輸出Oracle職員的基本信息:使用繼承提高代碼的復(fù)用性使用多態(tài)提高代碼的可擴(kuò)展性及可維護(hù)性3掌握繼承掌握super關(guān)鍵字掌握多態(tài)本章目標(biāo)4生活中的繼承2-1生活中,繼承的例子隨處可見動(dòng)物食草動(dòng)物食肉動(dòng)物誰是父類?誰是子類?能說出繼承的特點(diǎn)嗎?繼承需要符合的關(guān)系:is-a,父類更通用、子類更具體5生活中的繼承2-2子類具有父類的一般特性(包括屬性和行為),以及自身特殊的特性
2、巴士是汽車嗎?卡車是汽車嗎?出租車是汽車嗎?最大載客數(shù)量報(bào)站引擎數(shù)量外觀顏色剎車加速汽車最大載重量卸貨所屬公司最大載客數(shù)量打發(fā)票屬性行為請(qǐng)問:出租車包含哪些屬性和行為呢?6為什么需要繼承4-1開發(fā)Oracle職員類,其中職員分為Java職員以及.NET職員,各自的要求如下:Java職員屬性:姓名、所屬中心方法:編寫代碼(步驟:啟動(dòng)java開發(fā)工具、開始編碼)、自我介紹.NET職員屬性:姓名、所屬中心方法:編寫代碼(步驟:啟動(dòng).NET開發(fā)工具、開始編碼)、自我介紹7請(qǐng)問:以下這個(gè)解決方案中存在著什么問題?為什么需要繼承4-2publicclassOra
3、cleDotNetStaff{privateStringname;//職員姓名privateStringschool;//所在中心publicOracleDotNetStaff(StringmyName,StringmySchool){name=myName;school=mySchool;}publicvoidgiveLession(){System.out.println(“啟動(dòng).net開發(fā)工具");System.out.println(“開始編碼");}publicvoidintroduction(){System.out.println("大
4、家好!我是"+school+"的"+name+".");}}publicclassOracleJavaStaff{privateStringname;//職員姓名privateStringschool;//所在中心publicOracleJavaStaff(StringmyName,StringmySchool){name=myName;school=mySchool;}publicvoidgiveLession(){System.out.println("啟動(dòng)java開發(fā)工具");System.out.println("開始編碼");}public
5、voidintroduction(){System.out.println("大家好!我是"+school+"的"+name+".");}}代碼存在重復(fù),違背了“writeoncerunanywhere”的原則8為什么需要繼承4-3如何改進(jìn)?有沒有可能建立繼承關(guān)系,讓子類自動(dòng)繼承父類的屬性和方法?Java職員是職員嗎?.NET職員是職員嗎?publicclassOracleStaff{privateStringname;//職員姓名privateStringschool;//所在中心publicOracleStaff(StringmyName,Str
6、ingmySchool){name=myName;school=mySchool;}publicvoidgiveLesson(){System.out.println(“開始編碼");}publicvoidintroduction(){System.out.println("大家好!我是“+school+"的"+name+"。");}}現(xiàn)在,所有子類中相同的代碼都抽取到父類中了屬性行為姓名所在中心編碼自我介紹職員Java職員.NET職員9為什么需要繼承4-4publicclassOracleJavaStaff2extendsOracleStaff
7、{publicOracleJavaStaff2(StringmyName,StringmySchool){super(myName,mySchool);}publicvoidgiveLesson(){System.out.println(“啟動(dòng)java開發(fā)工具");super.giveLesson();}}publicclassOracleDotNetStaff2extendsOracleStaff{publicOracleDotNetStaff2(StringmyName,StringmySchool){super(myName,mySchool)
8、;}publicvoidgiveLesson(){System.out.println("啟動(dòng).NET開發(fā)工