PHP有利於兩個關鍵字,即implements
和extends
關鍵字,可以在類繼承和接口實現的上下文中使用。雖然這兩個關鍵字都與麵向對象編程的概念相關,但它們有不同的用途。
Extends
關鍵詞
extends
關鍵字用於創建從另一個類繼承的子類。繼承是麵向對象編程中的一個基本概念,允許一個類繼承另一個類的屬性和方法。
用法
class First {
public function parent() {
// Code...
}
}
class Second extends First {
// Code...
}
示例: 實施延長PHP 中的關鍵字。
PHP
<?php
class ParentClass
{
public function parentMethod()
{
echo "This is a method from the parent class.\n";
}
}
class ChildClass extends ParentClass
{
public function childMethod()
{
echo "This is a method from the child class.\n";
}
}
$childObj = new ChildClass();
$childObj->parentMethod();
$childObj->childMethod();
?>
輸出
This is a method from the parent class. This is a method from the child class.
實施關鍵字
Implements 關鍵字用於聲明一個類實現一個或多個接口。接口定義了實現類必須遵守的契約,指定了類必須實現的一組方法。
用法
interface MyInterface
{
// Method...
}
class MyClass implements MyInterface
{
// Method...
}
示例: 實施實現PHP 中的關鍵字。
PHP
<?php
interface MyInterface
{
public function interfaceMethod();
}
class MyClass implements MyInterface
{
public function interfaceMethod()
{
echo "This is the implementation of the interface method.\n";
}
}
$obj = new MyClass();
$obj->interfaceMethod();
?>
輸出
This is the implementation of the interface method.
我之間的差異mplements
和Extends
現在,讓我們總結一下之間的主要區別implements
和extends
:
參數 | Implements |
Extends |
---|---|---|
Purpose | 實現接口 | 擴展一個類 |
Syntax | class MyClass implements MyInterface |
class ChildClass extends ParentClass |
Inheritance | 沒有從接口繼承 | 從父類繼承屬性和方法 |
多種用途 | 可以實現多個接口 | 隻能延長一類 |
抽象類 | 可以實現抽象類 | 隻能擴展具體(非抽象)類 |
代碼可重用性 | 通過接口實現提高代碼可重用性 | 通過類繼承提高代碼可重用性 |
相關用法
- PHP implode()用法及代碼示例
- PHP imap_8bit()用法及代碼示例
- PHP imap_alerts()用法及代碼示例
- PHP imap_append()用法及代碼示例
- PHP imap_base64()用法及代碼示例
- PHP imap_binary()用法及代碼示例
- PHP imap_body()用法及代碼示例
- PHP imap_bodystruct()用法及代碼示例
- PHP imap_check()用法及代碼示例
- PHP imap_clearflag_full()用法及代碼示例
- PHP imap_close()用法及代碼示例
- PHP imap_create()用法及代碼示例
- PHP imap_createmailbox()用法及代碼示例
- PHP imap_delete()用法及代碼示例
- PHP imap_deletemailbox()用法及代碼示例
- PHP imap_errors()用法及代碼示例
- PHP imap_expunge()用法及代碼示例
- PHP imap_fetch_overview()用法及代碼示例
- PHP imap_fetchbody()用法及代碼示例
- PHP imap_fetchheader()用法及代碼示例
- PHP imap_fetchmime()用法及代碼示例
- PHP imap_fetchstructure()用法及代碼示例
- PHP imap_fetchtext()用法及代碼示例
- PHP imap_gc()用法及代碼示例
- PHP imap_get_quota()用法及代碼示例
注:本文由純淨天空篩選整理自vkash8574大神的英文原創作品 What is the difference between implements and extends in PHP ?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。