假定Dog和Cattle的“跑(run)”是相同的,因此run()方法具有相同的业务逻辑;而“叫(speak)”是不同的,因此speak()方法的业务逻辑不同。而且,有一个IAnimal的接口规定必须有这两个方法,这意味着Animal类必须实现这两个方法,同样,Dog和Cattle这两个子类也必须有这两个方法吗,那么我们可以这样定义: 代码如下: <?php interface IAnimal{ public function run(); public function speak(); } class Animal implements IAnimal{ public function run(){ //在这里可以添加一些相同的run逻辑 return "same run<br />"; } public function speak(){ //这里可以添加一些相同的speak逻辑 return "same speak<br />"; } } class Dog extends Animal{ public function speak(){ //在这里可以添加一些Dog逻辑 return "Dog speak<br />"; } } class Cattle extends Animal{ public function speak(){ //在这里可以添加一些Cattle逻辑 return "Cattle speak<br />"; } } $oDog=new Dog(); echo($oDog->run()); echo($oDog->speak()); $oCattle=new Cattle(); echo($oCattle->run()); echo($oCattle->speak()); ?>