Heim  >  Artikel  >  Backend-Entwicklung  >  Vererbung und Methodenüberladung von PHP-Klassen

Vererbung und Methodenüberladung von PHP-Klassen

无忌哥哥
无忌哥哥Original
2018-06-28 14:39:401488Durchsuche

//Autoloader verwenden, um Klassen zu laden: (Kurzversion)

spl_autoload_register(function($className){
    require './class/'.$className.'.php'; 
});

//$smartPhone = new SmartPhone('Apple','iPhone8', 5888);

/ // /Diese drei Attribute gibt es derzeit nicht in der SmartPhone-Klasse. Können sie ausgegeben werden?

//echo 'Brand: '.$smartPhone->brand.'0c6dc11e160d3b678d68754cc175188a'; Normal: Auf public kann von außen zugegriffen werden

//echo 'Modell: '.$smartPhone->model.'0c6dc11e160d3b678d68754cc175188a' //Fehler: protected ist nur in der aktuellen Klasse und Unterklassen zugänglich

//echo 'Price: '.$smartPhone->price '0c6dc11e160d3b678d68754cc175188a';//Fehler: privat ist nur für die aktuelle Klasse zugänglich

* Was wäre, wenn diese Eigenschaften kann normal zugegriffen werden?

* Es gibt zwei Optionen zur Implementierung

* 1. Setzen Sie alle Zugriffskontrollen verwandter Eigenschaften in der übergeordneten Klasse MobilePhone auf öffentlich

* 2 . Setzen Sie die übergeordnete Klasse MobilePhone. Die Zugriffskontrolle der relevanten Attribute wird vollständig auf „geschützt“ gesetzt und eine Abfrage wird in der Unterklasse SmartPhone erstellt

* Wir übernehmen die zweite Option

$smartPhone = new SmartPhone('HUAWEI','P20', 5488,true,true);
//下面我们换一组数据来初始化对象,验证parent::__contrunctor()
$smartPhone = new SmartPhone('MI','MIX2', 3599,true,true);
//此时SmartPhone类中并无这三个属性,可以输出吗?
echo &#39;品牌: &#39;.$smartPhone->brand.&#39;<br>&#39;; 
echo &#39;型号: &#39;.$smartPhone->model.&#39;<br>&#39;; 
echo &#39;价格: &#39;.$smartPhone->price. &#39;<br>&#39;;
//下面输出二个在子类中扩展的属性
echo &#39;照相:&#39;.($smartPhone->camera?&#39;支持&#39;:&#39;没有&#39;).&#39;<br>&#39;;
echo &#39;上网:&#39;.($smartPhone->internet?&#39;支持&#39;:&#39;没有&#39;).&#39;<br>&#39;;
echo $smartPhone->call().&#39;<br>&#39;; //call()是父类中的方法
echo $smartPhone->game().&#39;<br>&#39;; //game()是子类中的方法

Das obige ist der detaillierte Inhalt vonVererbung und Methodenüberladung von PHP-Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn