1. 繼承

我們繼續上一節中的例子,在PHP中,繼承和Java是一樣的,都使用extends關鍵字。 復制代碼 代碼如下: class People { private $name; public function GetName " /> 亚洲精品福利在线,久久亚洲精品2017,麻豆精选2021

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

一步一步學習PHP(6) 面向對象

但是我們知道,面向對象有三大特征:繼承,多態和封裝。

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("Good Morning,".parent::GetName());
}
}

在這里,我們需要主要的還有我們訪問父類在C# 中用base,在Java中用super,但是在php中,我們用parent關鍵字。

如果我們要訪問自身的方法,那么可以用this,也可以用self。
復制代碼 代碼如下:
class Student extends People
{
public function GetName()
{
return "kym";
}
private $grade;
public function SayHello()
{
echo("Good Morning,".self::GetName());
//echo("Good Morning,".$this->GetName());
}
}

2. 抽象類

提到繼承,就不得不說抽象類。
復制代碼 代碼如下:
<?php
abstract class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
abstract function SayHello();
}
class Student extends People
{
public function SayHello()
{
echo("Good Morning,".parent::GetName());
}
}
$s=new Student();
$s->SetName("kym");
$s->SayHello();
?>

3. 接口

接下來就是接口:
復制代碼 代碼如下:
<?php
abstract class People
{
private $name;
public function GetName()
{
return $this->name;
}
public function SetName($name)
{
$this->name=$name;
}
abstract function SayHello();
}
interface IRun
{
function Run();
}
class Student extends People implements IRun
{
public function SayHello()
{
echo("Good Morning,".parent::GetName());
}
public function Run()
{
echo("兩條腿跑");
}
}
$s=new Student();
$s->SetName("kym");
$s->SayHello();
$s->Run();
?>

都沒什么好說的,跟Java一模一樣。

4. 構造方法

一直忘了說構造方法,其實也就是一段同樣的代碼:
復制代碼 代碼如下:
<?php
class Person
{
private $name;
private $age;
public function Person($name,$age)
{
$this->name=$name;
$this->age=$age;
}
public function SayHello()
{
echo("Hello,My name is ".$this->name.".I'm ".$this->age);
}
}
$p=new Person("kym",22);
$p->SayHello();
?>

我們在面試中也許經常會遇到一種變態的題型,就是若干個類之間的關系,然后構造函數呀什么的調來調去。但是,在php中就不會遇到這樣的情況了,因為在php中并不支持構造函數鏈,也就是說,在你初始化子類的時候,他不會自動去調用父類的構造方法。
復制代碼 代碼如下:
<?php
class Person
{
private $name;
private $age;
public function Person($name,$age)
{
$this->name=$name;
$this->age=$age;
}
public function SayHello()
{
echo("Hello,My name is ".$this->name.".I'm ".$this->age);
}
}
class Student extends Person
{
private $score;
public function Student($name,$age,$score)
{
$this->Person($name,$age);
$this->score=$score;
}
public function Introduce()
{
parent::SayHello();
echo(".In this exam,I got ".$this->score);
}
}

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

5. 析構函數

析構函數和C#和C++中不同,在php中,析構函數的名稱是__destructor()。
復制代碼 代碼如下:
class Student extends Person
{
private $score;
public function Student($name,$age,$score)
{
$this->Person($name,$age);
$this->score=$score;
}
public function Introduce()
{
parent::SayHello();
echo(".In this exam,I got ".$this->score);
}
function __destruct()
{
echo("我要被卸載了");
}
}

6. 多態

由于默認參數的存在,以及php的弱類型,使得編譯時多態(也就是由于參數個數以及類型不同而造成的多態)無法實現,但是運行時多態在上文中已有提及。不再贅述。

php技術一步一步學習PHP(6) 面向對象,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人在线不卡视频 | 799是什么意思网络用语 | 射漂亮黑b丝女 | 欧美另类老女人 | 国产手机在线亚洲精品观看 | 国产AV无码熟妇人妻麻豆 | 99久久久国产精品免费蜜臀 | 漂亮的保姆5电影免费观看完整版中文 | swag合集120部| 日日碰狠狠躁久久躁综合网 | 青娱乐极品视觉盛宴国产视频 | 日韩中文字幕欧美在线视频 | 精品九九视频 | 美女张开腿让男生桶动态图 | 亚洲伊人色综合久久天天伊人 | 在线免费观看国产视频 | 国产 亚洲 日韩 欧美 在线观看 | 国产成人精品电影在线观看 | 国产成人免费片在线观看 | 美女议员被泄裸照 | 男女肉大捧进出全过程免费 | 国产成人免费观看 | 欧美丰满熟妇无码XOXOXO | 中文字幕亚洲男人的天堂网络 | 国产午夜理论片YY8840Y | 动漫美女3d被爆漫画 | WWW亚洲精品久久久无码 | 巨乳中文无码亚洲 | 99re久久精品在线播放 | 久久91精品久久久久久水蜜桃 | 免费人成在线观看视频不卡 | 闺蜜扒开我尿口使劲揉 | 亚洲福利网站 | 黄页网站免费视频大全9 | 奇米网一区二区三区在线观看 | 久久精品亚洲热综合一本奇米 | 被黑人群jian又粗又大H | 国产日韩亚洲专区无码 | 动漫AV纯肉无码AV电影网 | 日本边添边摸边做边爱边 | 国产麻豆精品人妻无码A片 国产麻豆精品久久一二三 国产麻豆精品传媒AV国产在线 |