By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,952 Members | 1,686 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,952 IT Pros & Developers. It's quick & easy.

upcasting in PHP OOP

P: n/a
Lets suppose I have an class called DatastoreSelect. It has a method
called getNextRow(). This method is not abstract, it is fully
implemented. It also has a method called setInfoToBeSought, which is
abstract in the sense that it has no implementation.

Now suppose I have an class called GetAllComments, which inherits from
DatastoreSelect. GetAllComments does not have a method called
getNextRow(). GetAllComments has a method called setInfoToBeSought,
which contains some SQL, like this:

$query = "SELECT * FROM content WHERE type='comments' AND
page=$pageId";

GetAllComments also has a method called getInfo() which gets runs the
query and gets a resource pointer.

Can I do this:

$gac = new GetAllComments();
$gac->setInfoToBeSought($pageId);
$gac->getInfo();
$datastoreReturn = $gac->getNextRow();
I mean, can I act like the method getNextRow() is there, even though
it's implementation is in the parent class?

If not, how else does one use the methods in super classes? Is there a
way to do Java-style upcasting?
Jul 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On 17 Nov 2003 12:32:28 -0800, lk******@geocities.com (lawrence)
wrote:
Lets suppose I have an class called DatastoreSelect. It has a method
called getNextRow(). This method is not abstract, it is fully
implemented. It also has a method called setInfoToBeSought, which is
abstract in the sense that it has no implementation.

Now suppose I have an class called GetAllComments, which inherits from
DatastoreSelect. GetAllComments does not have a method called
getNextRow(). GetAllComments has a method called setInfoToBeSought,
which contains some SQL, like this:

$query = "SELECT * FROM content WHERE type='comments' AND
page=$pageId";

GetAllComments also has a method called getInfo() which gets runs the
query and gets a resource pointer.

Can I do this:

$gac = new GetAllComments();
$gac->setInfoToBeSought($pageId);
$gac->getInfo();
$datastoreReturn = $gac->getNextRow();
I mean, can I act like the method getNextRow() is there, even though
it's implementation is in the parent class? Yeah u can
If not, how else does one use the methods in super classes? Is there a
way to do Java-style upcasting?


Yeah u can
Jul 17 '05 #2

P: n/a
lawrence wrote:
Lets suppose I have an class called DatastoreSelect. It has a method
called getNextRow(). [...]

Can I do this:

$gac = new GetAllComments();
$gac->setInfoToBeSought($pageId);
$gac->getInfo();
$datastoreReturn = $gac->getNextRow();
I mean, can I act like the method getNextRow() is there, even though
it's implementation is in the parent class?

If not, how else does one use the methods in super classes? Is there a
way to do Java-style upcasting?


What happenned when you tried?

When I tried this

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<?php
class x1 {
function out() {echo 'x1::out';}
}

class x2 extends x1 {
function out2() {echo 'x2::out';}
}

$z = new x2;

$z->out();
echo "\n\n";
$z->out2();
echo "\n\n";
?>
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I got this back

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
x1::out

x2::out

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

--
..sig
Jul 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.