That one question that is asked in every PHP interview

I am a PHP programmer and have been on many job interviews. I noticed that on each of them one question always came up.
That question is:
What’s the difference between interface and abstract class?
The answer to this question is simple and proves the candidate’s familiarity with object-oriented programming.
So let’s compare these two:
Interface
- It cannot contain any functionality. It only contains definitions of the methods.
- The derived class MUST provide code for all the methods defined in the interface.
- Completely different and non-related classes can be logically grouped together using an interface.
To declare interface use interface
keyword
interface ButtonClick {
public function setValue($name,$var);
public function getData($jsonData);
}
Abstract class
- It can provide some functionality and leave the rest for the derived class.
- The derived class may or may not override the concrete functions defined in the base class.
- A child class extended from an abstract class should logically be related.
To declare class to be abstract just simply abstract
before class
keyword
abstract class MyAbstractClass {
//your code goes here
}
If you like this then share it with your friends to help them.
Also let me know in the comment section.
Connect with me on Twitter