1 / 15

Nedarvning & polymorfisme

Nedarvning & polymorfisme. Intro nedarvning (eng.: inheritance ) Nedarvningshierarkier Intro polymorfisme (eng .: polymorphism ) Abstract / virtual / override / sealed Intro interfaces Abstract vs interface Steen Jensen , efterår 2013. Nedarvning (eng.: inheritance ).

Download Presentation

Nedarvning & polymorfisme

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nedarvning & polymorfisme • Intro nedarvning (eng.: inheritance) • Nedarvningshierarkier • Intro polymorfisme (eng.: polymorphism) • Abstract / virtual / override / sealed • Intro interfaces • Abstractvs interface • Steen Jensen, efterår 2013

  2. Nedarvning (eng.: inheritance) En given klasse kan nedarve fra en anden klasse Forældre-klassen kaldes base class, og børne-klassen kaldes derivedclass (dansk: afledt klasse)

  3. Nedarvningshierarkier Nedarvningshierarkier kan opbygges

  4. Video-øvelse – nedarvning (inheritance) • Gå ind på http://www.youtube.com/watch?v=aKaneSO9HLc • Se videoen igennem (varer ca. 8 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: • Hvordan angiver man, at man ønsker at nedarve fra en anden klasse? • Forklar forskel på private, public og protected • Formål med keywordbase? • Hvilke 2 måder kan man overwritepå?

  5. Polymorfisme (eng.: polymorphism) • Ordet polymorfisme stammer fra græsk og er sammensat af ordene poly(= mange) og morph(= form), altså mange former • Dette svarer til, at et ord kan have flere meninger afhængig af den givne kontekst / situation • I OO-sammenhæng betyder det, at den samme metode og signatur kan udløse forskellige handlinger afhængig af typen af objekt, som metoden kaldes med

  6. Øvelse 1 – polymorfisme (polymorphism) • Gå ind på http://www.slideshare.net/gauravsitu/polymorphism-12270448 • Se slideshowet igennem (17 slides) – efter du har set slideshowet, skal du kunne redegøre for følgende i plenum: • Forklar begrebet methodoverloading • Forklar begrebet methodoverriding • Forklar forskel på compile time polymorphism(statisk polymorfisme) og run time polymorphism(dynamisk polymorfisme)

  7. Øvelse 2 – polymorfisme (polymorphism) • Gå ind på http://www.youtube.com/watch?v=4a_iTOtGhM8 • NB! Derivedclass kaldes her for tailedclass • Se videoen igennem (ca. 14 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: • Forklar formål med virtual + override • Er der tale om statisk eller dynamisk polymorfisme i eksemplet og hvorfor?

  8. Vigtige keywords • Kun metoder erklæret som virtual, overrideeller abstractkan overskrives (eng.: override) i afledte (eng.: derived) klasser • En metode erklæret som sealedi en forældreklasse (eng.: base class) kan ikke overskrives i afledte klasser • Se beskrivelse af abstract + sealedher:http://msdn.microsoft.com/en-us/library/ms173150.aspx

  9. Øvelse 3 – polymorfisme (polymorphism) Gå ind påhttp://www.onlinebuff.com/article_oops-principle-polymorphism-in-c-with-an-example_17.html Læs/kig eksemplerne igennem Klik derefter på Viewsource(NB! flere steder) under ’Simple example of polymorphismusing c sharp’ Copy/paste kode ind i Visual Studio og kør koden Udvid eksemplet, så der også kan beregnes arealet af et kvadrat Slut af med at ændre eksemplet, så brugeren kan indtaste, hvilken figur der skal beregnes areal for, samt en radius/sidelængde. Ud fra de indtastede data beregnes det relevante areal, som udskrives

  10. Interfaces • Interfaces definerer egenskaber (eng.: properties), metoder og hændelser (eng.: events), som tilhører interfacet • Interfaces indeholder kun erklæringen (eng.: declaration) af disse dele • Det er den afledte (eng.: derived) klasses opgave at definere delene • Et interface kan betragtes som en kontrakt

  11. Øvelse 1 – interfaces • Gå ind på http://www.tutorialspoint.com/csharp/csharp_interfaces.htm • Læs/kig eksemplerne igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: • Hvad er formålet med interfaces? • Hvordan defineres et interface, og hvordan benytter man det?

  12. Øvelse 2 – interfaces • Gå ind på http://www.youtube.com/watch?v=jh4y8HzGqCQ • Se videoen igennem (ca. 9min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: • Hvordan kan interfaces være med til at sikre konsistens mellem forskellige klasser?

  13. Øvelse 3 – interfaces • Gå ind på http://www.youtube.com/watch?v=TZi86NDFwNU • Se videoen igennem (ca. 7min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: • Hvordan kan man implementere polymorfisme gennem interfaces?

  14. Abstractvs interface Ovenstående figur samt tommelfingerregler kan ses på http://browse.feedreader.com/c/NET_Concepts_Simplified_For_Interviews/270053544

  15. Programmeringsøvelser – nedarvning & polymorfisme • Resten af dagen + fortsæt torsdag: • Prøv at diskutere, om den hidtidige implementering af Spejdersystemet kan ændres, så der benyttes nogle af principperne fra dagens slides: nedarvning (inheritance) / polymorfisme / interfaces • Når I fortsætter med de nye use cases, så prøv også at bruge principperne fra dagens slides

More Related