作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究Abstract 和Interface 之间的区别,我读了一些句子说
A child class can only extend a single abstract (or any other) class, whereas an interface can extend or a class can implement multiple other interfaces.
当他说“一个子类只能扩展一个抽象(或任何其他)类”时,我理解他的意思:
class first
{
public function Search()
{
return 'Hellow';
}
}
abstract class first2 extends first
{
}
class second extends first2
{
}
$ob = new second();
echo $ob->Search();
但是,我没听懂他说的“而一个接口(interface)可以扩展,或者一个类可以实现多个其他接口(interface)”这句话的其余部分。
有人可以解释一下他的最后一句话并添加一个代码示例吗?谢谢大家,祝你有美好的一天。
最佳答案
你可以实现多个接口(interface)
interface C {
public function method1();
}
interface D {
public function method2();
}
class A implements C,D {
//implement from interface C
public function method1() {
}
//implement from interface D
public function method2() {
}
}
在这里您需要实现接口(interface) C 和 D 的方法。您还可以在接口(interface)内扩展接口(interface),就像普通类一样。
interface D extends C{}
当您需要一些常用方法时,它很有用。所以你将“模式”写入接口(interface),你期望从基类实现什么方法。
虽然抽象是单个扩展类,但您不能为其创建实例,只能扩展。当您想要一些具有通用功能的基类或应该稍后实现的抽象方法时,它很有用。
您可以随时在 php.net - interfaces 阅读更多内容
关于PHP, OOP, 不同的表述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764570/
我是一名优秀的程序员,十分优秀!