我已经在网络上到处寻找了一个好的答案,但我还没有找到一个我真正理解的答案。我将以一种不同的方式介绍这个问题,希望这些答案也能对其他人有所帮助。
据我所知,这两个概念有相同的规则,除了抽象类由于方法实现能力而更灵活。此外,我知道你可以实现多个接口,并且只扩展一个类,但我相信比我提到的两个更多的区别。
请看这两个代码片段,并给我一个例子,我可以对我的每个例子做什么,使我想要或不想使用另一个。
抽象类
abstract class Foo {
abstract public function getValue();
abstract public function setValue($value);
}
class myObj extends Foo {
function getValue() {
}
function setValue($value) {
}
}
接口
interface Foo {
public function getValue();
public function setValue($value);
}
class myObj implements Foo {
function getValue() {
}
function setValue($value) {
}
}
https://stackoverflow.com/questions/15960729
复制相似问题