(親クラスはスーパークラス、基本クラスとも呼ばれ、サブクラスは親クラスの拡張とも呼ばれます)
3. 派生クラスは親クラスの機能を拡張および変更できます
< ?php class ShopProduct{ function getSummaryLine() { echo 'i am father\'s getSummaryLine function '."\n"; } } class Cdproduct extends ShopProduct{ function getSummaryLine() { echo 'i am son\'s getSummaryLine function'."\n"; } } $product1 = new ShopProduct(); $product2 = new Cdproduct(); $product1->getSummaryLine(); echo "-------------\n"; $product2->getSummaryLine();?>
i am father's getSummaryLine function -------------i am son's getSummaryLine function //变了
結果が表示されません。はい
< ?php class ShopProduct{ public $title; function __construct($title) { //父类的构造方法,这里看到需要传入一个参数$title //————第四步 $this->title = $title; echo 'i am father\'s construct and title is'.$title."\n"; } function getSummaryLine() { echo 'i am father\'s getSummaryLine function '."\n"; } } class Cdproduct extends ShopProduct{ public $sonTitle; function __construct($title,$sonTitle) { //子类的构造方法,这里添加一个新的参数$sonTitle //————第二步 parent::__construct($title); //这里就是调用父类的构造方法,因为父类的构造方法是只有一个参数$title,所以只需要传入一个 //————第三步 $this->sonTitle = $sonTitle; //这个就是子类自己的构造方法想增加的一个属性 //上面这几行加起来的意思就是子类需要父类的构造方法,并且在父类的构造方法的基础(获得了父类的$title)上增加一个子类自己的属性($sonTitle) echo 'i am son\'s construct and title is'.sonTitle."\n"; } function getSummaryLine() { echo 'i am son\'s getSummaryLine function'."\n"; } } $product1 = new ShopProduct('TTTTitle'); echo "-------------\n"; $product2 = new Cdproduct('TTTitle2222','dasdsada'); //————第一步(如果单单看Cdproduct这个子类的实例化的过程的话,就是四步) echo "-------------\n"; $product1->getSummaryLine(); echo "-------------\n"; $product2->getSummaryLine();?>
各サブクラスは、独自のプロパティを設定する前に、親クラスのコンストラクターを呼び出します。親クラスはそれ自体のデータを知る必要があるだけです。子クラスについては親クラスに何も伝えないようにするのが経験則です。 (実際、オブジェクト指向開発では、「特定のタスクに焦点を当て、外部コンテキストを無視する」)
6. public、private、protected - 可視性キーワードを使用すると、顧客が必要とするクラスの部分のみを公開できます。オブジェクト設定 明確なインターフェイス。
public はすべてオープンになり、private は現在のクラスに対してのみ呼び出すことができ、protected は現在のクラスとサブクラスに対して呼び出すことができます。セキュリティ レベルは public < protected < です (アクセシビリティを厳密に制御する傾向があります)
6.1 アクセス方法
i am father's construct and title isTTTTitle-------------i am father's construct and title isTTTitle2222i am son's construct and title issonTitle-------------i am father's getSummaryLine function -------------i am son's getSummaryLine function