이 예에서는 MyObject 클래스를 사용하여 Book과 Elec라는 두 개의 하위 클래스를 생성합니다. 두 하위 클래스는 서로 다른 구성 방법을 사용하여 두 개체 c_book 및 h_elec을 인스턴스화하고 정보를 출력합니다.
<?php /*父类*/ class MyObject{ public $object_name; //名称 public $object_price; //价格 public $object_num; //数量 public $object_agio; //折扣 function construct($name,$price,$num,$agio){ $this -> object_name = $name; $this -> object_price = $price; $this -> object_num = $num; $this -> object_agio = $agio; } function showMe(){ echo '这句话不会显示。'; } } /* 子类Book */ class Book extends MyObject{ public $book_type; //类别 function construct($type,$num){ $this -> book_type = $type; $this -> object_num = $num; } function showMe(){ return '本次新进'.$this -> book_type.'图书'.$this -> object_num.'<br>'; } } /* 子类Elec */ class Elec extends MyObject{ function showMe(){ return '热卖商品'.$this -> object_name.'<br>原价:'.$this -> object_price.'<br>特价:'.$this -> object_agio * $this -> object_price; } } /* 实例化对象 */ $c_book = new Book('计算机类',1000); $h_elec = new Elec('待机王XX手机',1200,3,0.8); echo $c_book->showMe()."<br>"; echo $h_elec->showMe(); ?>
(1) 하위 클래스 모든 멤버 변수를 상속합니다. constructor를 포함한 상위 클래스의 메소드. 이것이 상속의 구현입니다
(2) 하위 클래스가 생성되면 PHP는 먼저 하위 클래스에서 생성자 메서드를 검색합니다. 하위 클래스에 자체 생성자가 있으면 PHP는 하위 클래스의 생성자를 호출하는 데 우선 순위를 부여합니다. 하위 클래스에 생성자가 없으면 PHP는 상위 클래스의 생성자를 호출합니다.
(3) 하위 클래스는 상위 클래스의 메서드 showMe( )를 재정의합니다. 두 객체 모두 showMe() 메서드를 호출하지만 반환되는 결과는 서로 다른 두 가지 정보입니다. 이것이 다형성의 구현입니다
위 내용은 php: 객체 상속과 다형성의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!