Kom ihåg mig?
Home Menu

Menu


Arv i PHP

Ämnesverktyg Visningsalternativ
Oläst 2008-07-25, 13:29 #1
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Hej!

Går det att ärva på följande sätt:
Kod:
<?php
class foobar extends enklass and entill
{
}
?>
Alltså från två andra klasser.
Lyckas inte få till det Tack på förhand!
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 13:33 #2
jimmies avatar
jimmie jimmie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 751
jimmie jimmie är inte uppkopplad
Mycket flitig postare
jimmies avatar
 
Reg.datum: Oct 2004
Inlägg: 751
Multipelt arv stödjs inte i PHP, multipla interfaces stödjs dock.
jimmie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 13:35 #3
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Oj, det var oväntat faktiskt! Är inte det en av basic punkterna för att räknas som OOP? <_<

Citat:
Originally posted by jimmie@Jul 25 2008, 13:33
multipla interfaces stödjs dock.
Förklara?
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 14:09 #4
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
Citat:
Ursprungligen postat av KarlRoos
Oj, det var oväntat faktiskt Är inte det en av basic punkterna för att räknas som OOP?
Citat:
Ursprungligen postat av jimmie
multipla interfaces stödjs dock.
Förklara?
Nej, multipla arv är definitvt inte en "basic" OOP-feature. Det är väldigt svårt att få till rätt och kan leda till konflikter som gör det svårt för kompilatorn att uppföra sig rätt, och ännu svårare för programmeraren att veta var det blir fel.

Interfaces låter dig speca vilka metoder som en implementerande klass måste innehålla, vilket betyder att du inte behöver veta alla detaljer om en klass så länge du kan klassens interface. Så länge som dina interfaces inte specar metoder med samma namn, kan din klass implementera flera interface.

Kan du ge ett riktigt exempel på var du hade tänkt använda multipla arv? I många fall finns det en bättre lösning än att göra på det sättet.
MMC är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 14:39 #5
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Tack för era svar.
Man lär sig något nytt varje dag

Citat:
Originally posted by MMC@Jul 25 2008, 14:09
Kan du ge ett riktigt exempel på var du hade tänkt använda multipla arv? I många fall finns det en bättre lösning än att göra på det sättet.
Jag kom på en alternativ lösning, tack ändå!
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 14:56 #6
void void är inte uppkopplad
Medlem
 
Reg.datum: Oct 2003
Inlägg: 124
void void är inte uppkopplad
Medlem
 
Reg.datum: Oct 2003
Inlägg: 124
Själv ramlar jag i fällan att ärva väl mycket, vet inte om det är relevant till trådskaparens problem men att tänka is-a eller has-a är alltid bra.

Ärvda klasser när det egentligen inte är bra..
Citat:

class Engine
{
private double horsepower;
Engine(double hp) { hp=horsepower; }
void StartEngine();
}
class Vehicle extends Engine // bad design
{
Vehicle(double hp) { super(hp); }
}
Vehicle volvo = new Vehicle(80);
volvo.StartEngine();
När man egentligen bör använda composition (has-a)
Citat:

class Engine
{
private double horsepower;
Engine(double hp) { hp=horsepower; }
void StartEngine();
}
class Vehicle
{
private Engine engine;
Vehicle (double hp) { engine=new Engine(hp); }
void Start() { engine.StartEngine(); }
}
(Koden är i Java och är snodd från nån kurs på KTH)
void är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 15:21 #7
Henrik Henrik är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 280
Henrik Henrik är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 280
Citat:
Originally posted by KarlRoos@Jul 25 2008, 14:39

Jag kom på en alternativ lösning, tack ändå

Berätta!
Henrik är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-25, 23:55 #8
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Citat:
Ursprungligen postat av Henrik
Citat:
Ursprungligen postat av KarlRoos
Jag kom på en alternativ lösning, tack ändå
Berätta!
Göra om de klasserna som skulle ärvas och den ärvande, det blev inte fint så jag struntade i funktionen jag hade tänkt mig...
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017