Re: Using a Resource as a Class Property



Sanders Kaufman wrote:
Toby A Inkster wrote:
Sanders Kaufman wrote:

So extended (child?) classes MUST NOT (for OOP reasons) automatically call a constructor. Rather, it should be called manually, if and when it's desired.

s/MUST NOT/DO NOT/

Of course, if you don't define a __construct() method in the child
class, the parent class' constructor will get called automatically.

Basically, in PHP __construct() behaves the same way other methods
do: if you define the method in a child class, the parent class'
method will be ignored, unless you explicitly call it from within
the child class' method (using "parent::method()").

So to correct my statement:

In OOP (not just PHP) the constructor of the grandest child :) will be called when a class is instantiated as an object.


True. And in true OO languages, the parent constructor(s) is(are) called, also.

Zat right?

Vocabulary question: When I do this, what is the OOP thing that I'm doing? You said that my use of an object as a property of the parent class was "aggregation. So - when I use use "extends" to create the child's reference to the parent - wassat? Marshalling? Inheritance?



Inheritance.


--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================
.



Relevant Pages

  • Re: Using a Resource as a Class Property
    ... if you don't define a __constructmethod in the child ... the parent class' constructor will get called automatically. ... In OOP the constructor of the grandest child:) will be called when a class is instantiated as an object. ...
    (comp.lang.php)
  • Re: Clean up after exception thrown in constructor
    ... If construction fails due to the Exception on the child class being thrown, the side-effect of the parent constructor cannot be cleaned up. ... The parent class cannot know that the child class's part of the constructor will demand an unwind of the setup actions. ...
    (comp.lang.java.programmer)
  • Re: Strange Static contstructor behavior
    ... I want the derived classes ... Then you only want one instance of the parent class. ... The static constructor still fires twice. ... I think instead you would want to create a non-generic base class that is composited into the generic class rather than being inherited. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: accessing protected data members of instance of parent class
    ... > | them without accessor methods. ... > | properly copies those data members. ... > You haven't said wheter the Parent class had an accessible ... the parent class does not have a copy constructor -- or even an ...
    (comp.lang.cpp)
  • Re: Strange Static contstructor behavior
    ... these static variables that are populated by the parent. ... Then you only want one instance of the parent class. ... The static constructor still fires twice. ... generic class is created on your behalf. ...
    (microsoft.public.dotnet.languages.csharp)