> 백엔드 개발 > PHP 튜토리얼 > PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)

PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)

WBOY
풀어 주다: 2023-04-10 18:20:01
원래의
3417명이 탐색했습니다.

이전 기사에서는 "클래스의 생성자와 소멸자를 구별하는 방법"을 가져왔는데, 여기서는 PHP 클래스에서 생성자와 소멸자를 사용하는 방법을 자세히 설명했습니다. 이번 기사에서는 계속해서 살펴보겠습니다. PHP 클래스의 상속 관련 지식이 모든 분들께 도움이 되었으면 좋겠습니다!

PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)

PHP의 객체 지향 세계에서는 클래스를 통해 기존 클래스를 상속할 수 있습니다. 상속된 클래스를 상위 클래스 또는 기본 클래스라고 하며, 상위 클래스를 상속하는 클래스를 하위 클래스라고 합니다. 실제로 하위 클래스는 상위 클래스의 확장으로 이해될 수 있으며, 하위 클래스는 상위 클래스의 기능 외에 새로운 기능을 추가할 수 있습니다. 하위 클래스는 상위 클래스의 생성자를 상속할 수도 있습니다. 하위 클래스가 인스턴스화되면 PHP는 하위 클래스의 생성자를 먼저 호출합니다.

<strong><span style="font-size: 20px;">확장</span></strong> 상속 키워드<strong><span style="font-size: 20px;">extends</span></strong>继承关键字

在PHP中,我们通过extends关键字来实现类的继承。它的语法格式如下:

class 子类名 extends 父类名{
    ... ...
}
로그인 후 복사

其中我们需要注意的是,一个类只能从另一个类中继承,但是一个类可以继承多个类。也就是一个子类只能有一个父类,但是一个父类可以有多个子类。

继承 public 成员

在PHP中,父类所有使用public修饰的成员都是可以被子类继承的。

接下来我们通过示例来看一下,示例如下:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        public function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
    }
    $object = new son1();
    $object -> demo();
    $object2 = new son2();
    $object2 -> demo();
?>
로그인 후 복사

输出结果:

PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)

在上述示例中,定义一个基类,使用另一类来继承这个基类,同时在尝试使用子类调用基类中的成员方法。结果父类所有使用public修饰的成员都是可以被子类继承的。

继承 protected 成员

上述中我们讲到了继承public修饰的成员,都可以被子类继承,还有一种protected成员,被它修饰的成员,就是属于不想被类的外部访问的,可以理解为通过修饰这个成员是一个保护成员,只能在类的内部被访问,同时也可以在子类的内部被访问,我们可以在子类设置一个成员函数来访问这个成员。

示例如下:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        protected function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
        public function test(){
            $this -> demo();
        }
    }
    $object = new son1();
    // $object -> demo();      // 在子类中调用父类使用 protected 修饰的成员方法会报错
    $object2 = new son2();
    $object2 -> test();
?>
로그인 후 복사

输出结果:

PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)

由上述示例我们能够看出,通过protected修饰的变量,也可以在继承后的子类内部被访问。

继承<strong><span style="font-size: 20px;">private</span></strong> 成员

在PHP类中,通过private
PHP에서는 extends 키워드를 통해 클래스 상속을 구현합니다. 구문 형식은 다음과 같습니다.

<?php
    class father{
        private function demo(){
            echo &#39;基类中private的成员方法<br>&#39;;
        }
    }
    class son  extends father{
        public function test(){
            $this -> demo();
        }
    }
    $object = new son();
    $object -> test();
?>
로그인 후 복사

우리가 주목해야 할 것은 클래스는 다른 클래스에서만 상속할 수 있지만 클래스는 여러 클래스를 상속할 수 있다는 것입니다. 즉, 하위 클래스는 하나의 상위 클래스만 가질 수 있지만 상위 클래스는 여러 개의 하위 클래스를 가질 수 있습니다.

공개 멤버 상속

PHP에서는 모든 상위 클래스가 멤버를 사용합니다. public에 의해 수정됨은 하위 클래스에서 상속될 수 있습니다.

다음으로 예시를 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)🎜🎜위의 예에서는 기본 클래스를 정의하고 다른 클래스를 사용하여 이 기본 클래스를 상속하는 동시에 기본 클래스 멤버 메서드를 호출하는 하위 클래스입니다. 결과적으로 상위 클래스의 모든 공개 수정 멤버는 하위 클래스에서 상속될 수 있습니다. 🎜🎜보호된 멤버 상속🎜🎜위에서 우리는 공개🎜🎜위의 예에서 protected로 수정된 변수는 상속된 하위 클래스 내에서도 액세스할 수 있음을 알 수 있습니다. 🎜🎜🎜<strong><span style="font-size: 20px;">상속</span></strong><code><strong><span style="font-size: 20px;">비공개</span> span></strong>span>회원🎜🎜PHP 클래스에서는 private수정된 멤버는 클래스 외부에서 액세스할 수 없으며 하위 클래스에서도 액세스할 수 없습니다. 이는 클래스의 프라이빗 멤버가 되는 프라이빗 수정이라고 이해할 수 있습니다. 정확하게 말하면 private으로 수정된 멤버는 하위 클래스에서 상속되지 않으며 하위 클래스에서 액세스할 수 없습니다. 🎜🎜🎜예제는 다음과 같습니다. 🎜rrreee🎜출력 결과가 잘못되었습니다. 하위 클래스의 상위 클래스에서 private 키워드로 수정된 멤버를 호출하면 프로그램이 오류를 보고하고 작업을 종료합니다. 🎜🎜관심이 있으시면 "🎜PHP 비디오 튜토리얼🎜"을 클릭하여 PHP 지식에 대해 자세히 알아볼 수 있습니다. 🎜

위 내용은 PHP 클래스 상속을 얻는 방법은 무엇입니까? (요약 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿