[php] class 간의 상속, 개체 확장
특징
- 부모 클래스(parent class)를 재사용하기 위함.
- 자식 클래스(child class)라고도 불리는 하위 클래스는 부모 클래스의 모든 메서드와 속성을 가지고 시작하며, 각각을 수정하거나 추가 요소를 넣을 수 있다.
예제
[부모 클래스]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
//사람의 정보를 담은 부모 클래스
class Human {
public $name;
public $gender;
//생성자를 이용한 객체 초기화
public function __construct($name, $gender)
{
$this->name = $name;
$this->gender = $gender;
}
//클래스의 이름을 출력하는 함수
public function print_class()
{
echo "\nThis class is Human Class\n";
}
}
//Human 클래스 객체
$human = new Human('Alice', 'other');
print_r($human);
$human->print_class();
?>
|
cs |
[전체 코드]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?php
//사람의 정보를 담은 부모 클래스
class Human {
public $name;
public $gender;
//생성자를 이용한 객체 초기화
public function __construct($name, $gender)
{
$this->name = $name;
$this->gender = $gender;
}
//클래스 이름을 출력하는 함수
public function print_class()
{
echo "\nThis class is Human Class\n";
}
}
//부모 클래스를 상속한 학생 클래스
class Student extends Human {
public $number;
public $class;
//생성자를 이용한 객체 초기화
public function __construct($name, $gender, $number, $class)
{
//부모 클래스를 이용한 초기화
parent::__construct($name, $gender);
//자식 클래스의 인수 초기화
$this->number = $number;
$this->class = $class;
}
//클래스 이름을 출력하는 함수
public function print_class()
{
echo "\nThis class is Student Class\n";
}
}
//Alice에 대한 정보(human)
$human = new Human('Alice', 'female');
print_r($human);
$human->print_class();
echo "\n";
//Jackson에 대한 정보(student)
$student = new Student('Jackson', 'male', 15, 2);
print_r($student);
$student->print_class();
?>
|
cs |