TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 01-25-2010, 02:39 AM   #1 (permalink)
The Visitor
 
Join Date: Jan 2010
Posts: 3
Thanks: 1
mrez0 is on a distinguished road
Default What is the difference between interface, abstract, and ordinary class?

I'm still confused about the meaning of interface, and abstract classes, and don't know what is the difference between them and ordinary class, and in what situations we use interface or abstract classes.

I read many tutorials about this topic but still confused about their meaning and functionality, and i'd be glad if some one explain their meanings and function by examples.

Regards.

Edit: actually i know what they are and what they do, but i want to know why should i use (abstract or interface) classes instead of just ordinary classes, although they can do the same job well.

Last edited by mrez0 : 01-25-2010 at 01:44 PM.
mrez0 is offline  
Reply With Quote
The Following User Says Thank You to mrez0 For This Useful Post:
mohdsiyam (08-08-2010)
Old 01-26-2010, 04:54 AM   #2 (permalink)
Wizard
Top Contributor 
 
Village Idiot's Avatar
 
Join Date: Sep 2007
Posts: 1,299
Thanks: 17
Village Idiot is on a distinguished road
Default

Lets start with abstract classes since they are similar to interfaces but easier to understand. I am assuming that you understand inheritance here. Abstract classes are classes which can not be directly used in the program; they can only be inherited. Lets say that you have a game with a few classes "Players" "Objects" and "nonPlayerCharicters". All these classes may have some properties in common, all will have health points, call can be destroyed, and all will be drawn on the screen. What you can do is make a that supports drawing of a model, handling health and things like that. Then you make three classes that have all the dissimilar information that inherit the common class. The common class is quite useful when inherited, but by its self is useless. So a programmer to prevent future developers from wondering if it can be directly used will make it an abstract class. This tells (and forces) everyone that the class was designed to be supplemental.

Interface classes are almost exactly like abstract classes except you do not implement the functions there. This allows you to have variable and function names where the child class sets them. I've never found a use for this before, it is a pathetic attempt at a more complex concept called polymorphism.
__________________

Village Idiot is offline  
Reply With Quote
The Following User Says Thank You to Village Idiot For This Useful Post:
mrez0 (01-26-2010)
Old 01-26-2010, 04:32 PM   #3 (permalink)
The Visitor
 
Join Date: Jan 2010
Posts: 3
Thanks: 1
mrez0 is on a distinguished road
Default

So the use of abstract class is like providing some common characteristics to child classes, but these characteristics can't be used by instantiating objects to this abstract class, as it is not allowed to instantiate an object to abstract class.
[Like the object has no meaning if it was instantiated to an abstract class]

Am i right?
mrez0 is offline  
Reply With Quote
Old 01-26-2010, 05:21 PM   #4 (permalink)
Wizard
Top Contributor 
 
Village Idiot's Avatar
 
Join Date: Sep 2007
Posts: 1,299
Thanks: 17
Village Idiot is on a distinguished road
Default

Yes, that is correct.
__________________

Village Idiot is offline  
Reply With Quote
Old 01-26-2010, 06:25 PM   #5 (permalink)
The Visitor
 
Join Date: Jan 2010
Posts: 3
Thanks: 1
mrez0 is on a distinguished road
Default

thx a lot...
mrez0 is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 10:38 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design