그래서, 이것은 내가 계속 진행 한 마지막 잔소리 상속 질문입니다. 그래서 저는 계속해서 묻고 싶습니다. 그래서 PHP에서 예를주지 : 충분히 간단한후드 아래의 상속
<?php
class Base
{
private $z = 4;
function GetPrivate()
{
echo $this->z;
}
}
class Derived extends Base
{
}
$b = new Base();
$d = new Derived();
$d->GetPrivate();
>
합니다. 언제나 상속에 대해 읽었을 때, 설명은 단지 "당신이 일반 대중과 보호 된 구성원을 물려받은 것"이었습니다. 내가 이해하지 못하는 것은이 예에서 통역사가 어떻게 무엇에 속해 있는지를 보여주는 방법에 관한 몇 가지 사실입니다.
예를 들어 파생 클래스를 만들 때 기본 함수의 "GetPrivate"공용 함수를 사용하여 기본 클래스의 전용 변수를 가져올 수 있습니다. 그러나 상속에 대한 간단한 정의가이 문제와 관련이 없습니다. 내 말은, GetPrivate 메서드를 상속 받았지만 기본 클래스에 속한 메서드의 private 변수에 대한 링크가 여전히 있습니다 ($ this가 파생 클래스 개체를 참조 함에도 불구하고). 개인 변수에 액세스하기 위해 파생 클래스에서 새 함수를 만들 수 없습니다.
따라서 인터프리터는 기본 클래스의 상속 된 함수와 해당 기본 클래스에서만 사용할 수있는 전용 멤버에 대해 유지할 수있는 링크를 파악합니다.