Даже если он называется суперклассом, это не значит, что он имеет все классы, определенные в другом месте.Методология следующая:
[super] --> [concrete]
, а не
[concrete] --> [super]
Таким образом, конкретный класс расширяет суперкласс.В этом случае у конкретного класса будет все, что есть в суперклассе, плюс то, что конкретный класс имеет / перезаписывает, но не наоборот.
class Super
{
public function a() {}
}
class Concrete extends Super
{
public function b() {}
}
Super
имеет ::a()
и, кроме того, Concrete
имеет ::b()
.Но Super
никогда не будет иметь ::b()
.
Кроме того, даже если у вас есть несколько классов, всегда есть один экземпляр независимо от того, сколько классов он состоит, обычно называемый объектом:
$object = new Concrete;
Это делает Concrete
объект.