Avatar billede lifehacker Nybegynder
09. juni 2008 - 18:28 Der er 1 kommentar

Nedarvs/Inheritance Eksempel

Hej med jer,
Jeg skal forklare muligheder og begrænsninger inden for Nedarv til eksamen, og er kommet lidt i tvivl mht et eksempel jeg gerne vil fremføre. Den eneste begrænsning jeg kan komme på, er at der ikke findes multipel nedarvning i Java sproget.
Det vil jeg gerne illustrere med et eksempel som i kan se her: http://www.mnemic.com/Inheritance_Example.jpg - jeg har ikke brugt mit UML værktøj men bare et andet grafisk program.

Student arver fra Person klassen, og Student bliver også til Employee, man kan ikke have det hele i moderklasser derfor bliver man nød til at oprette en ny klasse som både henter fra Student og Employee.  Studenten er en aggreggering og har en relation til Employee klassen, og begge klasser kommunikere med den mere "overordnet" klasse som er komposition (sorte diamant) StudentEmployee.
Har jeg nu gjort dette rigtigt??

Har i nogle forslag på begrænsninger inden for nedarv?

Hjælp påskønnes!
På forhånd 1000 mange tak.
Avatar billede tiller3 Nybegynder
10. juni 2008 - 04:44 #1
Hvad mener du med at "Student bliver også til Employee"? Hvad sker der saa naar en Student bliver faerdig med at studere?

Men en ting der undre mig ved dit design, er hvad du vil med StudentEmployee klassen. Da den jo hverken nedarver fra Student eller Employee bliver den svaer at haandtere i dit program.

Problem a:
Forestil dig du har en Course klasse, som representere et kursus. Dette kurses skal saa have en liste over alle studerende som er tilmeldt. Hvordan vil du haandtere det, hvis nogle af de studerende, ogsaa er er Employee?

Generalt tror jeg du mangler at at overveje hvordan disse 4 klasser, kan indgaa som del(modul) i et stoerer program. Hvorfor er der foreksempel en Person klasse? (Og burde Employee ikke ogsaa vaere en(Nedarve fra Person)?

Men hvad et 'korrekt' svar kommer meget an paa om du har et kursus i Object Orienteret Design, som bare bruger java som eksempel sprog, eller om du har et java kursus, som ogsaa inkluderer lidt Object Orienteret design.

btw: Det svar de nok leder efter er at nedarvning i java ikke kan bruges til at modellere dynamiske relationer, og sammenhaenge. Altsaa ting som aendre sig i loebet af en program koersel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester