資源描述:
《java的繼承、重載和多態(tài)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、實驗六 Java的繼承、重載與多態(tài) 一、實驗目的理解Java類的繼承、重載和多態(tài)的概念,掌握類的繼承機制的實現(xiàn),掌握方法的重載,以及多態(tài)的實現(xiàn)。二、實驗要求1、本實驗屬于驗證型和設計型實驗。需要根據(jù)已給的源程序運行結果,并結合問題進行新的設計;2、對實驗過程中提出的問題進行解答;3、完成實驗報告。三、實驗內(nèi)容與過程1、上機運行下面的程序,并回答下面的問題。publicclassClassOne{intnum=100;publicvoidcompute(){num-=50;}publicstaticvoidmain(Stringargs
2、[]){ClassOneone=newClassOne();ClassTwotwo=newClassTwo();System.out.println(“numofClassTwo:”+two.num);System.out.println(“numofClassOne:”+two.getNum());two.compute();System.out.println(“numofClassTwo:”+two.num);System.out.println(“numofClassOne:”+two.getNum());}}classCla
3、ssTwoextendsClassOne{intnum=0;publicvoidplus(){num+=50;}publicintgetNum(){returnsuper.num;}}問題:(1)請指出Java面向?qū)ο缶幊讨腥齻€主要特性。(2)Java中的繼承機制是什么?(3)請指出程序中關鍵字super的作用。2、運行下面的程序,回答問題。classMonkey{privateintage=10;voidspeak(){System.out.println("Iammonkey.");}}classPeopleextendsMonk
4、ey{voidcomputer(inta,intb){intc=a*b;System.out.println("Icancomputer"+a+"*"+b+"="+c);}voidspeak(){System.out.println("Iamhuman.");}}publicclassExcise7_2{publicstaticvoidmain(Stringargs[]){Monkeymonkey=newPeople();monkey.speak();monkey.computer(10,12);Peoplepeople=(Peopl
5、e)monkey;people.computer(10,12);}}問題:1、上面的程序有一處錯誤,請改正使其能正確運行。2、什么是對象的上轉(zhuǎn)型對象?3、在Java中能不能防止一個類被繼承?若能,如何實現(xiàn)?4、子類People具不具有父類Monkey中屬性age?若沒有繼承屬性age,請修改程序使子類具有父類中的所有屬性。3、閱讀下面的程序,回答程序。classComputer{voidcompute(inta,intb){intc=a+b;System.out.println(a+"+"+b+"="+c);}voidcompute(
6、doublea,doubleb){doublec=a+b;System.out.println(a+"+"+b+"="+c);}}publicclassExcise7_3{publicstaticvoidmain(Stringarg[]){Computerc=newComputer();c.compute(10,20);c.compute(10.5,20.5);}}問題:(1)請解釋“重載”的概念。(2)假設在main方法中增加一條語句c.compute(“java”,”program”);后仍能正確執(zhí)行,請完善上面的程序。4、運行下
7、面的程序,回答問題。publicclassExcise7_4{Persony=newPerson();Personx=newTang();Personz=newTang("sun");Persont=newTang("zhu",200);publicstaticvoidmain(Stringargs[]){System.out.println("y="+y.getName());System.out.println("x="+x.getName());System.out.println("z="+z.getName());Syste
8、m.out.println("t="+t.getName());}}classPerson{Stringname=newString("person");floatheight=1.75f;publicStringget