1樓:匿名使用者
這兩句沒問題
$student1->dance();
$student1->say();
問題出在這三句:
$student1->name='zhangsan';
$student1->age=20;
$student1->gender='male';
這三個都是私有成員,不能直接賦值,可以在基類中實現公共的set方法或者建構函式來賦值。
2樓:隋龍飛
因為父類的私有屬性是不可訪問的。子類繼承的時候,當然也就不存在這3個屬性,所以咯,也沒有辦法賦值和取值了。
3樓:匿名使用者
簡單解決
class humanbeing{
private $name;
private $age;
private $gender;
修改為public $name;
public $age;
public $gender;
php的抽象類被子類繼承後,子類例項什麼訪問不了父類的變數?
4樓:花臂華盛頓
<?php
abstract class aa
}class bb extends aa
function vvv()
}$p = new bb();
$p->vvv();
?>
構造bai方du法zhi寫dao錯版
了權__construct
php如何通過子類繼承父類共有方法訪問父類私有屬性
在php裡,子類是不是可以繼承父類的私有屬性,但不能訪問啊?
5樓:
private表示私有的,只有本類內部可以使用。如果不想繼承但又能在外部使用 ,用protected。
/*例項一個student的物件,此時注意,這個物件並不會繼承父類humanbeing的三個 private變數$name,$age,$gender*/
$student1->name='zhangsan';
$student1->age=20;
$student1->gender='male';
/*這裡需要注意.很多人會誤以為是給父類humanbeing的三個屬性賦值了,這是錯的。這裡的賦值,僅僅是給子類student的三個屬性賦值。
上面的這三行**,僅僅是子類student的三個屬性賦值,和父類humanbeing的三個屬性,沒有任何關係,僅僅名字一樣而已*/
function say() and i am years old. i am .";}
/*這個是父類humanbeing的公有方法,(預設的是public的),這個方法中 $this -> name.這裡的$this 是指父類student,$this -> name是指父類student的屬性,從始至終,它並沒有被賦值,所以它是空的,(而且它也不能被賦值,因為是private),這裡的$student1->name='zhangsan';賦值操作,僅僅是修改子類student的$name */
6樓:
用print_r來檢測一下這個物件
註釋掉的時候
print_r($s1);
student object
([name:person:private] => ys)告訴我們name是person類私有的屬性當沒註釋掉的時候
print_r($s1);
student object
([name:person:private] => ys[name] => 子類
)告訴我們name是person類私有的屬性,有給student類新增了一個name屬性
我們還註釋掉,再修改如下
$s1 = new student();
$s1->name = '子類'; //新增一個屬性為name$s1->say();
跟上面一樣的結果
從這些除錯結果分析,繼承跟訪問可以這樣說是一個概念,私有不可以繼承過來。
你繼承的時候加的那個$this->name是又新新增了一個name屬性,跟父類的name屬性無關
在php裡,子類是不是可以繼承父類的私有屬性,但不能訪問?
7樓:
用print_r來檢測一下這個物件
註釋掉的時候
print_r($s1);
student object
([name:person:private] => ys)告訴我們name是person類私有的屬性回當沒註釋掉答的時候
print_r($s1);
student object
([name:person:private] => ys[name] => 子類
)告訴我們name是person類私有的屬性,有給student類新增了一個name屬性
我們還註釋掉,再修改如下
$s1 = new student();
$s1->name = '子類'; //新增一個屬性為name$s1->say();
跟上面一樣的結果
從這些除錯結果分析,繼承跟訪問可以這樣說是一個概念,私有不可以繼承過來。
你繼承的時候加的那個$this->name是又新新增了一個name屬性,跟父類的name屬性無關
php知道父類id查詢所有子類id,怎麼寫
function getallids id 樓主,可以參考這個文件http www.doc88.com p 989614539176.html裡面有php遞迴函式遍歷所有子分類id 查詢父節點的方法是 var obj document.getelementbyid a objparent obj.p...
關於php類成員屬性宣告和訪問的問題
團毒七七 你總共提了三個問題,三個問題都是關於訪問許可權控制的,建議你將物件導向的訪問許可權控制的那部分給學習一下。1 類裡的變數是否一定要宣告為成員屬性,答 不一定,在一個類中,有建構函式 屬性 方法 未在方法和建構函式中宣告的變數為屬性,屬性是體現這一個類 物件 的特性的描述,他是這個類的特性的...
困擾好久了,趕高手就我!關於C子類訪問父類protected成員
class car 繼承了 vehicle以後 this.weight 可以訪問。這叫繼承。或者 vehicle this weight 也可以。你在哪new那也叫例項化,跟繼承沒半毛錢關係。 陽光的雷咩咩 http msdn.microsoft.com zh cn library s9zta243...