- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Polymorfi og nedarvning【荐】.ppt
DAIMI Introducerende Objektorienteret Programmering Polymorfi og nedarvning Motivation for arv og “mange former” Nedarvning I har allerede set eksempler p? nedarvning (inheritance) af egenskaber, nemlig med de l?rde skildpadder Nedarvede objekter Nedarvede objekter indeholder foreningsm?ngden af instansvariable og metoder for alle dens superklasser (super class) Klassehierarki De l?rde skildpadder og a, b, og c-klasserne er eksempler p? klassehierarkier (class hierarchy): Motivation for polymorfi Vi er blevet bedt om at lave nogle klasser til at tegne figurer: Et rektangel og en trekant. Krav: Skal kunne tegne dem i forskellige farver Vi skal kunne flytte figurerne en afstand, d Skildpadden kan hj?lpe os Konstrukt?r Rektangel: public Rectangle( int width, int height, Color color, TurtleWorld sandbox ) { w = width; h = height; c = color; t = new Turtle( sandbox ); t.penUp(); t.moveTo( 100, 100 ); t.penDown(); t.setColor( color ); } draw() public void draw() { t.move(w); t.turn(90); t.move(h); t.turn(90); t.move(w); t.turn(90); t.move(h); t.turn(90); } move() Nogle forslag? Sletning af en figur Den f?rste del af move best?r jo i at slette den, s? vi kunne dels f? en mere l?sevenlig kode, og tilf?je en ny egenskab til vores klasse: Evnen til at blive slettet Trekant Konstrukt?r Trekant: public Triangle( int basis, Color color, TurtleWorld sandbox ) { b = basis; c = color; t = new Turtle( sandbox ); t.penUp(); t.moveTo( 100, 100 ); t.penDown(); t.setColor( color ); } draw() public void draw() { t.move(b); t.turn(120); t.move(b); t.turn(120); t.move(b); t.turn(120); } move() Nogle forslag? Nye figurer Cirkler, stjerner, rhomber, femkanter, … Hvordan undg?r vi at skrive det samme kode igen og igen? Nogle forslag? Det objektorienterede svar De objekt-orienterede sprog giver en elegant mekanisme til at h?ndtere s?danne problemstillinger, b?de begr
文档评论(0)