Reply to Re: Object Oriented PHP

Your name:

Reply:


Posted by Tony Marston on 06/25/06 13:56

"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
news:SY2dnb9_bL74DQPZnZ2dnUVZ_sadnZ2d@comcast.com...
> Tim Van Wassenhove wrote:
>> On 2006-06-25, David Haynes <david.haynes2@sympatico.ca> wrote:
>>
>>>PHP5 has weak polymorphism but not true polymorphism in the sense that it
>>>is used in OOP.
>>
>>
>> So how would you define polymorphism? And what exactly are the
>> differences between 'weak' and 'true' polymorphism?
>>
>> If i look at
>> http://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29
>>
>> "The concept of polymorphism applies to data types in addition to
>> functions. A function that can evaluate to and be applied to values of
>> different types is known as a polymorphic function. A data type that
>> contains elements of different types is known as a polymorphic data
>> type."
>>
>>
>>>function __construct($one, $two="two", $three="three") {
>>>
>>>I cannot instantiate this object as new Foo($one, $three) since there is
>>>no typing on the arguments and, therefore, no signature for a 'one,
>>>three' contructor.
>>
>>
>> Imho that's the same as saying: I'm standing with my back against a wall,
>> and now i'm wondering why i can't step backwards anymore...
>>
>> Define your constructor as __constructor($args) and handle with
>> func_num_args and func_get_args(s) any number of parameters...
>>
>> (I do agree that the language/compiler can, probably should, make this
>> easier... But that's a different discussion.)
>>
>
> The constructor overloading example isn't really polymorphism. It's just
> function overloading.

Absolutely correct. Polymorphism means "same interface, different
implememtation". You do not need overloading to make polymorphism work.

--
Tony Marston

http://www.tonymarston.net
http://www.radicore.org



> Polymorphism is the ability to operate on objects of derived classes,
> without knowing what the derived classes are (or potentially even the
> existence of the derived classes).
>
> For instance - let's say we have class "mammal" with function "eats". Now
> all mammals eat something, but what the class of mammals eats is not
> defines.
>
> So, derive from mammal the class "ape" and have eats return "bananas".
> Also derive the class "horse" and have eats return "oats".
>
> Now - when you create an object of the class "ape" you can pass it to a
> function which takes a "mammal". And you can print out what *this* mammal
> eats. The same with a horse.
>
> Polymorphism is closely tied to inheritance. But while inheritance allows
> the programmer to take advantage of the commonalities between classes,
> polymorphism allows the program to take advantage of the differences.
>
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstucklex@attglobal.net
> ==================

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация