ホームページ >バックエンド開発 >PHPチュートリアル >PHP(6) オブジェクト指向をステップバイステップで学ぶ_PHP チュートリアル

PHP(6) オブジェクト指向をステップバイステップで学ぶ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:40:42894ブラウズ

しかし、オブジェクト指向には、継承、ポリモーフィズム、カプセル化という 3 つの大きな特徴があることがわかっています。

1. 継承

PHP では、継承は Java と同じで、どちらも extends キーワードを使用します。

コードをコピーします コードは次のとおりです:

class People
{
private $name;
public function GetName()
{
return $this->name
}
public function SetName; ($name)
{
$this->name=$name;
}
}
class Student extends People
{
private $grade;
public function SayHello()
{
echo("おはようございます"。 parent::GetName ());
}
}

ここで必要なのは、C# では Base を使用し、Java では super を使用して親クラスにアクセスすることですが、PHP では、parent キーワードを使用します。

独自のメソッドにアクセスしたい場合は、this または self を使用できます。
コードをコピーします コードは次のとおりです:

class Student extends People
{
public function GetName()
{
return "kym"}
private $grade();
{
{ echo("おはよう".self::GetName());
//echo("おはよう".$this->GetName());
}
}

2 . 抽象クラス

継承に関して言えば、抽象クラスについて話さなければなりません。
コードをコピー

コードは次のとおりです:
abstract class People {
public function GetName()
{
return $this->name; }
public function SetName($name)
{
$this->name=$name;
}
abstract function SayHello();
}
class Student extends People
{
public function SayHello()
{
echo ("おはようございます,".parent::GetName());
}
}
$s->SetName("kym"); ;
? >



3. インターフェース


コードをコピーします

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

abstract class {
プライベート $name;
パブリック関数 GetName ()
{
return $this->name; } パブリック関数 SetName($name) { $this->name=$name; 抽象関数SayHello();
}
インターフェイス IRun
{
function Run();
}
class Student extends People 実装
{
public function SayHello()
{
echo("Good Morning,".parent::GetName( ));
}
public function Run ()
{
echo("二本足で走る")
}
}
$s=new Student();
$s->SayHello() ;
$s->Run();


何も言うことはありません。


4. 構築方法


いつも構築方法について言及するのを忘れていましたが、実際には同じコードです:



コードをコピーします

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

class人
{
プライベート $name; パブリック関数 $this->name=$name
}
public function SayHello( )
{
echo("こんにちは、私の名前は「.$this->name.」です。私は「.$this->age」です } } $p=new Person("kym" ,22); $p->SayHello(); ?>


複数のクラスとコンストラクター間の関係に関する、倒錯的な質問に遭遇することがあります。物事が行ったり来たり。ただし、PHP ではそのような状況は発生しません。PHP はコンストラクター チェーンをサポートしていないためです。つまり、サブクラスを初期化するときに、親クラスのコンストラクターが自動的に呼び出されることはありません。



コードをコピーします

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

class person
{
private $name;
public function Person($name,$age)
{
$this->name=$name; ;age=$age;
}
public function SayHello()
{
echo("こんにちは、私の名前は ".$this->name" です。私は ".$this->age); }
}
class Student は Person を拡張します
{
private $score;
public function Student($name,$age,$score)
{
$this->person($name,$age); >score=$score;
}
public function Recruit()
{
parent::SayHello();
echo(".この試験では、".$this->score);

$s=new Student("kym",22,120);
$s->Introducing()?>



5. デストラクターは、PHP の C# および C++ とは異なります。 、デストラクターの名前は __destructor() です。



コードをコピーします

コードは次のとおりです:
class Student extends Person
{
private $score;
public function Student($name,$age,$score) { $this-> ;person($ name,$age); $this->score=$score; }
public function Recruit()
{
parent::SayHello(); この試験では、 ".$this ->score);
}
function __destruct()
{
echo("アンインストールされます");
}
}



6. ポリモーフィズム


デフォルトパラメータの存在と PHP 弱い型により、コンパイル時のポリモーフィズム (つまり、パラメータの数とタイプの違いによるポリモーフィズム) を実装することが不可能になりますが、実行時のポリモーフィズムについては前述しました。もはや。



http://www.bkjia.com/PHPjc/321285.html
www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/321285.html
技術記事

しかし、オブジェクト指向には、継承、ポリモーフィズム、カプセル化という 3 つの大きな特徴があることがわかっています。 1. 継承 前のセクションの例を続けてみましょう。PHP では、継承は Java と同じで、どちらも extends を使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。