프로그래밍 언어/PHP

클래스의 상속

· 코딩마이데이

클래스는 extends 키워드를 이용하여 다른 클래스로 부터 속성과 메소드를 상속받을 수 있습니다. 이러한 클래스의 상속(Inheritance) 기능으로 인하여 객체지향 프로그래밍의 장점이 더욱 부각될 수 있습니다.

 

다음 예제를 통하여 클래스의 상속의 개념과 사용법을 익혀봅시다.

 

07/ex7-5.php

<?php
    class Rectangle {
        public $width; // 02
        public $height;
        public function __construct($width, $height) {
            $this->width = $width;
            $this->height = $height;
        }
        public function getArea() {
            return ($this->width * $this->height);
        }
    } // 12
    
    class Square extends Rectangle { // 14
        public function isSquare() { // 15
            if ($this->width == $this->height) {
                return true; // 정사각형인 경우
            }
            else {
                return false; // 직사각형이 아닌 경우
            }
        } // 22
    }

    $rect = new Square(10, 10); // 25

    if ($rect->isSquare()) // 27
        echo "정사각형의 넓이 : ";
    else
        echo "직사각형의 넓이 : "; // 30
    
    echo $rect->getArea(); // 32
?>

ex7-6.php의 실행 결과

 

 

02~12 Rectangle 클래스는 두 개의 속성($width, $height), 생성자, 한 개의 메소드(getArea())로 구성됩니다.

 

14 Square 클래스는 2~12행에서 정의한 Rectangle 클래스의 모든 자산, 즉 속성, 생성자, 메소드를 상속받습니다.

 

15~22 Square 클래스는 Rectangle 클래스에서 상속받은 자산에 추가적으로 isSquare() 메소드를 가집니다. isSquare() 메서드는 $this->width와 $this->height가 같은 경우, 즉 정사각형일 경우에는 True, 그렇지 않으면 False 값을 반환합니다.

 

25 Square(10, 10)을 이용하여 $rect 객체를 생성합니다. 이 때 5~8행의 생성자 함수가 사용됩니다.

 

27~30 $rect->isSquare() 메서드를 호출하여 반환되는 값이 True이면 '정사각형 넓이 : '를 출력하고, 그렇지 않으면 '직사각형 넓이 : '를 출력합니다.

 

32 $rect->getArea() 메서드를 호출하여 9~11행의 getArea() 메소드를 실행하여 실행 결과에서와 같이 정사각형(또는 직사각형)의 넓이를 출력합니다.

 

'프로그래밍 언어 > PHP' 카테고리의 다른 글

MySQL 서버 구동하기  (0) 2026.06.20
접근 제어자  (0) 2026.06.19
생성자와 소멸자  (0) 2026.06.18
속성과 메서드  (0) 2026.06.17
클래스와 객체  (0) 2026.06.17