Hướng dẫn php abstract class parent constructor - phương thức khởi tạo cha của lớp trừu tượng php

Không, hàm tạo của lớp cha không được gọi nếu lớp con định nghĩa một hàm tạo.

Từ người xây dựng lớp con của bạn, bạn phải gọi hàm tạo của lớp phụ huynh:

parent::__construct[];

Vượt qua các tham số của nó, nếu cần.

Nói chung, bạn sẽ làm như vậy khi bắt đầu hàm tạo của lớp con, trước bất kỳ mã cụ thể nào; có nghĩa là, trong trường hợp của bạn, bạn sẽ có:

class Child extends Base {
    function __construct[] {
        parent::__construct[];
        echo 'Child __construct
'; } }


Và, để tham khảo, bạn có thể xem trang này của Hướng dẫn sử dụng PHP: Chất xây dựng và Hàng không - nó nêu [trích dẫn]:

Lưu ý: Các hàm tạo cha mẹ không được gọi là ngầm nếu lớp con định nghĩa một hàm tạo. Để chạy một hàm tạo cha mẹ, cần có một cuộc gọi đến parent::__construct[] trong hàm tạo con. Parent constructors are not called implicitly if the child class defines a constructor.
In order to run a parent constructor, a call to parent::__construct[] within the child constructor is required.

16 năm trước

instatiendaweb tại gmail dot com ¶[mixed ...$values = ""]: void

1 năm trước

Lưu ý: Các hàm tạo cha mẹ không được gọi là ngầm nếu lớp con định nghĩa một hàm tạo. Để chạy một hàm tạo cha mẹ, một cuộc gọi đến cha mẹ :: __ construct [] trong hàm tạo con là bắt buộc. Nếu trẻ không định nghĩa một hàm tạo thì nó có thể được kế thừa từ lớp cha giống như một phương thức lớp bình thường [nếu nó không được tuyên bố là riêng tư].: Parent constructors are not called implicitly if the child class defines a constructor. In order to run a parent constructor, a call to parent::__construct[] within the child constructor is required. If the child does not define a constructor then it may be inherited from the parent class just like a normal class method [if it was not declared as private].

Ví dụ số 1 người xây dựng trong kế thừa

1

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
2

Yousef Ismaeil cliprz [at] gmail [dot] com ¶

9 năm trước

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
3

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
4

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
5

Mỗi Persson ¶

10 năm trước

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
6

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
7

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
8

SubClass extends BaseClass {
    function 
__construct[] {
        
parent::__construct[];
        print 
"In SubClass constructor\n";
    }
}

class

OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
9

Jonathon Hibbard ¶

12 năm trước

Bài Viết Liên Quan

Chủ Đề