Chồng hàm

Thứ ba, 25/11/2014 4:04 PM
 

Một số vấn đề cần quan tam khi bạn khai báo thuộc tính và phương thức trong hai class có kế thừa với nhau, Chẳng hạn như trong ví dụ sau:

Ví dụ: Khai báo cùng tên phương thức trong 2 class

<?php
class myclass
 { 
  var $attribute1="value of myclass"; 
  function abc()
  {
   echo $this->attribute1; 
  }

 }
class mysubclass extends myclass
 {  
  
  var $attribute2="Value of mysubclass";
  function abc()
  {
   echo $this->attribute2; 
  }

 }
?>
<html>
<head>
  <title>Classes and Object</title>
</head>
<body>
<?php
 $a=new mysubclass();   
 $a->abc();
?>
</body>
</html>

     Trong ví dụ này, hai phương thức cùng tên abc đều được khai báo trong myclass và mysubclass. Nếu bạn khởi tạo đối tượng mysubclass, phương thức bạn gọi có tên abc chính là phương thức khai báo trong lớp mysubclass. Bạn sẽ không bao giờ gọi được phương thức abc trong lớp myclass cho dù bạn đã khai báo extends mysubclass là myclass.

   Tương tự như vậy nếu bạn khởi tạo đối tượng myclass, phương thức bạn gọi có tên abc chính là phương thức khai báo trong lớp myclass. bạn cũng không thể gọi được phương thức abc trong lớp mysubclass như ví dụ sau:

Ví dụ: Gọi phương thức của chính class

<?php
class myclass
 { 
  var $attribute1="value of myclass"; 
  function abc()
  {
   echo $this->attribute1; 
  }

 }
class mysubclass extends myclass
 {  
  
  var $attribute2="Value of mysubclass";
  function abc()
  {
   echo $this->attribute2; 
  }

 }
?>
<html>
<head>
  <title>Classes and Object</title>
</head>
<body>
<?php
 $a=new myclass();   
 $a->abc();
?>
</body>
</html>

 

Bài viết cùng chuyên mục: "Lập trình php"

Liên hệ