21 php
编写课程时界面的目的是什么?
这是我在网上看到的一个例子.
<?php
interface Chargeable {
public function getPrice();
}
class Employee implements Chargeable {
protected $price;
public function getPrice() {
return $this->price;
}
}
$product = new Employee();
?>
Run Code Online (Sandbox Code Playgroud)
Gab*_*osa 33
这是我学习界面和理解界面的方法之一.
想象一下这种情况:
abstract class Plane {
public function openDoors();
}
interface Fliers {
public function fly();
}
Run Code Online (Sandbox Code Playgroud)
现在让我们使用它们:
class Boeing747 extends Plane implements Fliers {
public function fly() {
// some stuff
}
public function openDoors() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
和:
class Tweety implements Fliers{
public function fly() {
// some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
Boeing747是飞机能飞和翠儿是一只鸟比能飞,但它是没有意义的翠儿为"openDoors".
关键是接口可以由不同类型的对象实现,但类不能.正如你所看到的,除了两者都可以飞行之外,波音747和特威蒂没有任何共同之处.
Bjo*_*orn 11
接口是面向对象编程中的一个概念,它支持多态.基本上,接口就像一个契约,实现它的类同意提供某些功能,以便它们可以像使用接口的其他类一样使用
您的示例显示了保证getPrice方法可用的类.然后,您可以编写利用具有此方法的对象的代码,而无需担心它是什么类.