Jump to content

Advancing My OOP Skills :)


seventheyejosh

Recommended Posts

So I've been trying to furthor my OOP knowledge, so I've been trawling through the php.net manual as well as countless online tutorials. I've finally clicked about visibility, but I have a question about extends.

 

What is a real world example when you would do class a extends class b?

 

And has anyone ever used the final decleration?

 

Thanks a lot :)

 

Link to comment
https://forums.phpfreaks.com/topic/173942-advancing-my-oop-skills/
Share on other sites

So I've been trying to furthor my OOP knowledge, so I've been trawling through the php.net manual as well as countless online tutorials. I've finally clicked about visibility, but I have a question about extends.

 

What is a real world example when you would do class a extends class b?

 

And has anyone ever used the final decleration?

 

Thanks a lot :)

 

 

Extending a class is used often in the Command pattern.

 

abstract class Command
{
   private $request;

   public function __construct(Request $request)
   {
      $this->request = $request;
   }

   public abstract function execute();
}

class Login_Command extends Command
{
   public function execute()
   {
      //assume we already have a db connection
      //request validation goes here...if valid $user = $this->request->getValue('user') and $pass = md5($this->request->getValue('pass'))

      $result = mysql_query("SELECT * FROM users WHERE username = $user AND pass = $pass");

      if (mysql_num_rows($result) == 1) { /* success */ }
      else { /* error */ }
   }
}

 

Rough sketch, but you should get the idea.

final is really not used all that often.

 

 

The only use of final is to make sure a method cannot be over ridden if the class is extended.  (Or, in the case of a final class, to make sure that the class can't be extended.)

 

 

Off the top of my head I can't think of an example situation >.<.

 

(Which probably doesn't help you much since I'm sure you knew what the final keyword does.)

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.