방금 오늘이 동작을 알았습니다. 이상한, 자바에서 상속 체인의 보호 된 메소드 업스트림에 액세스 할 수 있다는 것은 꽤 확실합니다. 다른 방법은 캡슐화를 위반하기 때문입니다.PHP 슈퍼 클래스는 어떻게 하위 클래스의 보호 된 메소드에 액세스 할 수 있습니까?
언어에서이 동작이 발생 했습니까?
방금 오늘이 동작을 알았습니다. 이상한, 자바에서 상속 체인의 보호 된 메소드 업스트림에 액세스 할 수 있다는 것은 꽤 확실합니다. 다른 방법은 캡슐화를 위반하기 때문입니다.PHP 슈퍼 클래스는 어떻게 하위 클래스의 보호 된 메소드에 액세스 할 수 있습니까?
언어에서이 동작이 발생 했습니까?
이 링크는 귀하의 답변에 도움이 될 수 있습니다 :
나는 당신을 도움이되기를 바랍니다.
이것은 Java에서도 허용됩니다. 그러나 이는 Java에서 허용 될 수 있습니다. protected는 패키지 레벨 범위로 간주되며 상속 체인 내에서 액세스로 강등되지 않기 때문입니다.
상위 클래스에 정의 된 한 메소드가 확장 클래스 유형에 따라 변경하기 위해 기능의 일부만 필요로 할 때 유용하다는 것을 알았습니다. 부모 내에서 추상 메소드를 호출 할 수 있으며 필요에 따라 하위 클래스에서 해당 메소드의 정의로 기능이 변경됩니다.
또한 형제 클래스는 부모 클래스에서 선언 된 경우 (서로 다를 수도 있고 추상적이 아닌 경우도 있음) 서로의 보호 된 속성 및 메서드에 액세스 할 수 있다고 덧붙입니다.
키스하다이 언어마다 다릅니다 여부를 알 수 있습니까? Java에서 'protected'가 패키지 수준의 액세스를 의미하는 경우 자체 정의 된 (상속되지 않은) 보호 된 속성이있는 두 형제 클래스가 여전히 동일한 패키지에 있지만 서로 액세스 할 수 없습니까? 감사합니다. – ambertch
protected != private
감사 무리, 레페 – ambertch
당신은 형제 클래스가 서로의 상속 보호 속성에 액세스 할 수와 함께, 환영합니다 :) – lepe