Prepare for your next interview with these essential Object-Oriented Programming (OOP) questions and answers. Learn about classes, objects, inheritance, access modifiers, and more with clear explanations and code snippets.
What is OOP?
OOP (Object-Oriented Programming) is a programming paradigm that focuses on creating objects that encapsulate both data and functions. It promotes code reusability, modularity, and a structured approach to programming.
Key Benefits of OOP:
- Follows the DRY (Don’t Repeat Yourself) principle
- Provides a structured programming approach
- Enhances code reusability and maintainability
- Offers faster and easier debugging
Difference Between Class and Object
Class: A class is a blueprint or template for creating objects.
class Fruit {
public $name;
public function setName($name) {
$this->name = $name;
}
}
Object: An instance of a class.
$apple = new Fruit();
$apple->setName("Apple");
What is a Constructor?
A constructor is a special function in a class that initializes object properties when the object is created. It is called automatically upon object instantiation.
class Car {
public $brand;
public function __construct($brand) {
$this->brand = $brand;
}
}
$bmw = new Car("BMW");
What is a Destructor?
A destructor is called when an object is destroyed or when the script execution ends. It is mainly used for cleanup purposes.
class Test {
public function __destruct() {
echo "Object destroyed";
}
}
$obj = new Test();
Explain Access Modifiers
Access modifiers define the visibility of properties and methods within a class.
- Public: Accessible from anywhere.
- Protected: Accessible within the class and derived classes.
- Private: Accessible only within the class.
Example:
class Example {
public $publicVar = "Public";
protected $protectedVar = "Protected";
private $privateVar = "Private";
}
What is Inheritance?
Inheritance allows a child class to inherit properties and methods from a parent class.
class Fruit {
public $color;
}
class Apple extends Fruit {
public function setColor($color) {
$this->color = $color;
}
}
What are Class Constants?
Class constants are values that remain unchanged throughout the execution.
class Fruit {
const COLOR = "Red";
}
echo Fruit::COLOR;
What is an Abstract Class?
An abstract class contains at least one abstract method (declared but not implemented). Child classes must define the abstract method.
abstract class Car {
abstract public function company();
}
class BMW extends Car {
public function company() {
return "BMW";
}
}
What are Interfaces?
Interfaces define a contract that a class must follow. It ensures that implementing classes have specific methods.
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
Difference Between Interface and Abstract Class
Feature | Abstract Class | Interface |
---|---|---|
Methods | Can have defined and abstract methods | Only abstract methods |
Properties | Can have properties | No properties |
Multiple Inheritance | No | Yes |
What are PHP Traits?
Traits are used to share methods between multiple classes to avoid code duplication.
trait Logger {
public function log($message) {
echo "Log: " . $message;
}
}
class User {
use Logger;
}
$user = new User();
$user->log("User logged in");
Static Method vs Static Property
Static methods belong to the class, not an instance.
class Test {
public static function show() {
echo "Static Method";
}
}
Test::show();
Static properties can be accessed without creating an object.
class Counter {
public static $count = 0;
}
echo Counter::$count;
What is Namespace in PHP?
Namespaces help organize code and prevent class name conflicts.
namespace MyNamespace;
class MyClass {
public function sayHello() {
echo "Hello";
}
}
Suggested Resources:
- Top CSS Interview Questions
- How to prepare for Remote Tech Interview?
- PHP Documentation – Classes and Objects
🔥 Want more interview tips? Subscribe to our newsletter for regular updates!