public function getInheritedMethods()
{
$methods = [];
$allMethods = array_flip(array_map(function (MethodReflectionInterface $methodReflection) {
return $methodReflection->getName();
}, $this->reflectionClass->getOwnMethods()));
foreach ($this->getParentClassesAndInterfaces() as $class) {
$inheritedMethods = [];
foreach ($class->getOwnMethods() as $method) {
if (!array_key_exists($method->getName(), $allMethods) && !$method->isPrivate()) {
$inheritedMethods[$method->getName()] = $method;
$allMethods[$method->getName()] = null;
}
}
$methods = $this->sortElements($inheritedMethods, $methods, $class);
}
return $methods;
}