Definition: Eingeschränkte Vererbung
bedeutet, dass die Unterklasse
, wenn sie Mitglieder der übergeordneten Klasse
erbt, nicht den gesamten Inhalt erbt, sondern die übergeordnete Klasse erbt und verwendet Inhalt des Klassenteils. Es wird allgemein angenommen, dass der bisherige CEO des Unternehmens plant, einige Dinge im Unternehmen an den aktuellen CEO zu übergeben. Die Übergabedokumente und Arbeitsinhalte können jederzeit schriftlich festgehalten und überprüft werden, für einige Arbeitseinblicke jedoch , das sind Wenn es keine Möglichkeit zur Übergabe gibt, handelt es sich um das begrenzte Erbe des aktuellen CEO vom vorherigen CEO. 有限继承
,指子类
在继承父类
的成员的时候,并非继承所有内容,而是继承并使用父类部分内容。 通俗的理解就是,公司的上一任CEO在离任时,准备把公司的一些事物交接给现任CEO,交接的文件,工作内容都是可以书面化记录下来随时查阅,但是对于一些工作的见解这些是没办法交接的,这就是现任CEO对对上任CEO的有限继承。
1.继承内容:PHP中继承是子类继承父类所有的公有成员
、受保护成员
和私有属性
,不能继承父类的私有方法。
<?php class A{ public $name='张三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); $this->getAge();//父类私有方法无法继承 } } $a=new B(); var_dump($a); /*object(B)#1 (3) { ["name"]=> string(6) "张三" ["sex":protected]=> string(3) "man" ["age":"A":private]=> string(2) "25" } */ ?>
2.受保护继承protected
protected
关键字的产生本身就是纯用于继承的,表示允许被子类在子类内部访问的意思,而不允许被外部直接访问。
<?php class A{ public $name='张三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); } } $a=new B(); var_dump($a); echo "<br>"; //$a->getSex(); //: Call to protected method A::getSex() from context 不能在外部访问 ?>
小提示:访问父类私有成员:子类若想访问父类私有成员,那么前提是父类提供公有或者受保护的方法给子类访问(一般不建议使用,否则设置私有的意义就没有了),。
3.静态成员(类常量)
也遵循继承规则(PHP继承本质是对象),只是访问方式是由类进行访问。
<?php class Fu{ const NAME = '人'; public static $count = 0; protected static $type = array('黑','黄','白'); public static function getCount(){ echo self::NAME; echo self::$count; } protected static function getType(){ print_r(self::$type); } } class Zi extends Fu{ //依然需要子类中访问受保护成员 public static function getFu(){ Fu::getType(); } } echo Zi::$count; //允许直接访问 Zi::getCount(); //访问父类静态方法 Zi::getFu(); //利用子类公有方法访问父类受保护成员 ?>
4.构造方法
和析构方法
也可以被子类继承,此时需要注意子类对象实例化时对应的父类构造方法
öffentlichen Mitglieder
, geschützten Mitglieder
und privaten Mitglieder erbt Die übergeordnete Klasse kann die privaten Methoden der übergeordneten Klasse nicht erben. <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
//父类
class Fu{
private $money;
public function __construct($money){
$this->money = $money;
}
public function __destruct(){
echo &#39;die&#39;;
}
}
//子类继承
class Zi extends Fu{}
//子类实例化:自身是空类,没有指定构造方法
//$m = new Zi(); //错误:缺少参数,因为会自动调用父类构造方法
$m = new Zi(100); //正确
?></pre><div class="contentsignin">Nach dem Login kopieren</div></div><a href="https://www.php.cn/php-weizijiaocheng-471412.html" target="_blank" title="php教程"><strong>2.</strong><strong>Protected inheritance protected</strong></a> Die Generierung des Schlüsselworts <code>protected
selbst dient ausschließlich der Vererbung und zeigt an, dass Unterklassen dazu berechtigt sind bedeutet internen Zugriff der Unterklasse, erlaubt aber keinen direkten Zugriff von außen. 🎜rrreee🎜 Tipp: Auf private Mitglieder der übergeordneten Klasse zugreifen: Wenn eine Unterklasse auf private Mitglieder der übergeordneten Klasse zugreifen möchte, ist die Voraussetzung, dass die übergeordnete Klasse öffentliche oder geschützte Methoden bereitstellt, auf die die Unterklasse zugreifen kann (im Allgemeinen nicht empfohlen, da sonst die Die Bedeutung der Einstellung „privat“ ist bedeutungslos. Es gibt keine mehr.) 🎜🎜3. Statische Mitglieder (Klassenkonstanten)🎜🎜 folgen ebenfalls Vererbungsregeln (PHP-Vererbung ist im Wesentlichen ein Objekt), aber die Zugriffsmethode erfolgt nach Klasse. 🎜rrreee🎜4.Konstruktionsmethode
und Zerstörungsmethode
können auch von Unterklassen geerbt werden. Zu diesem Zeitpunkt müssen Sie auf das entsprechende achten Werte beim Instanziieren von Unterklassenobjekten. Parameter des übergeordneten Klassenkonstruktors
. 🎜rrreee🎜Empfohlen: 🎜php-Tutorial🎜🎜Das obige ist der detaillierte Inhalt vonSohn erbt das Geschäft des Vaters, PHP erbt Privatbesitz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!