ホームページ > バックエンド開発 > PHPチュートリアル > PHP ポリモーフィズムとインターフェース学習の実装とコード例_PHP チュートリアル

PHP ポリモーフィズムとインターフェース学習の実装とコード例_PHP チュートリアル

WBOY
リリース: 2016-07-20 11:09:47
オリジナル
1085 人が閲覧しました

PHP チュートリアル 5 では、変数の型は定義されていません。変数は、任意の型の数値、文字列、オブジェクト、リソースなどを指すことができます。 php5 のポリモーフィズムは変数であるとは言えません。

php5ではメソッドパラメータの型ヒント位置にポリモーフィズムが適用されているとしか言えません。

クラスのサブクラス オブジェクトは、現在の型を型ヒントとして使用して型要件を満たすことができます。このインターフェイスを実装するすべてのクラスは、インターフェイスの型を型ヒントとして使用してメソッド パラメーターの要件を満たすことができます。簡単に言えば、クラスはその親クラスの ID を持ち、実装されたインターフェイスはインターフェイスを実装することによって実現されます。次の例では、useradmin クラスの静的メソッドにはユーザー型パラメーターが必要です。

後の使用では、ユーザーインターフェイスを実装するnormaluserクラスのインスタンスが渡されます。コードは正常に実行されます。

interface user{ // ユーザーインターフェイス

public function getname();

public function setname($_name);
}

classnormaluserimplements user { // インターフェイスを実装するクラス
private $ name ;

public function getname(){

return $this->name;
}
public function setname($_name){
$this->name = $_name;
}
}

class useradmin{ / / Operation.
public static function changeusername(user $_user,$_username){

$_user->setname($_username);

}
}

$normaluser = newnormaluser();
useradmin::changeusername($ Normaluser ,"tom");//ここで渡されるのは、normaluser のインスタンスです。

echo $normaluser->getname();

?>


php インターフェイス クラス:interface

実際、関数は非常に単純です。多くの人が一緒にプロジェクトを開発する場合、全員が他の人が作成したクラスを呼び出すことがあります。そのとき、特定の関数の実装メソッドに名前を付けるにはどうすればよいでしょうか?クラスが機能します。インターフェイス クラスを定義するときは、その中のメソッドを次のサブクラスで実装する必要があります。

コードは次のとおりです。 gid);

public function sell($gid);

public function view($gid);

ショップ インターフェイス クラスを宣言し、buy、sell、view、および継承の 3 つのメソッドを定義します。これら 3 つのメソッドのいずれかを実装する必要があります。サブクラスがこれらのメソッドを実装していない場合、サブクラスは機能しません。実際、インターフェイス クラスは、端的に言えば、クラスのテンプレートであり、クラスの規則です。このカテゴリに属する​​場合は、どのような方法であっても、私の規則に従わなければなりません。どうするかはあなた次第です。例:

コードは次のとおりです:

class Baseshopimplements shop
{
public function buy($gid)
{

echo('この ID で製品を購入しました: '.$gid.');

}

public function sell($gid)

{
echo('ID: '.$gid.') の商品を販売しました
}
public function view($gid); )
{
echo('ID '.$gid.' の製品を表示します。');
}
}


以下は短縮されたメソッドです


interface myusbkou
{
function type();//Type

function action {
echo "- -->USB 2.0 ドライバーが必要"; }

}

class mp3implements myusbkou
{
function type()
{
echo "mp3 1.0 インターフェイス" ; function Action() - > mp3 1.0ドライバー< br/> "; $thing->action();
}
}
$p=new mp3();
$p->usbthing );
$p ->usbthing($zip)
?>



www.bkjia.com本当http://www.bkjia.com/PHPjc/444782.html技術記事 PHP チュートリアル 5 では、変数の型は定義されていません。変数は、任意の型の数値、文字列、オブジェクト、リソースなどを指すことができます。 php5 のポリモーフィズムは変数であるとは言えません。 私たちはただ...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート