<?php
class A {}
class B extends A {}
class C extends B {}
class D {}
interface InterfaceTest { public function foo($d); }
abstract class AbstractTest {
public abstract function foo($d);
}
class TestAbstractContravariance extends AbstractTest {
public function foo($d) {}
}
class TestAbstractCovariance extends AbstractTest {
public function foo($d) {}
}
class TestInterfaceContravariance implements InterfaceTest
{
public function foo($d) {}
}
class TestInterfaceCovariance implements InterfaceTest {
public function foo($d) {}
}