Polymorphism
Polymorphism is a fundamental concept in object-oriented programming, or OOP. It allows different classes to be treated as instances of a common base class, interface, or abstract class, and it allows writing code that works with these objects without needing to know their specific types.
Polymorphism is achieved through method overriding and interfaces. A class may only extend a single parent class, though that parent may itself extend another, forming a chain of inheritance. On the other hand, implementing interfaces can be arbitrarily chosen for any class and its children, and a class may implement several interfaces at once.
<?php
class Object {}
// the interfaces are empty for better readability
interface hasMedian {}
interface hasInscribedCircle {}
class Triangle extends Object implements hasInscribedCircle, hasMedian {}
class Square extends Object implements hasInscribedCircle {}
class Pentagon extends Object {}
?>