> 백엔드 개발 > PHP 튜토리얼 > 子类继承父类 父类private问起求各位大神详解

子类继承父类 父类private问起求各位大神详解

WBOY
풀어 주다: 2016-06-23 14:14:23
원래의
780명이 탐색했습니다.

<?php class A{		private function test($n){		echo "11";	}}class B extends A{	function test(){		echo "22";			}}class C extends A{}$b1=new B();$b1->test();?>
로그인 후 복사
此代码中父类有个private方法 PHP规则不是子类不能继承父类的private方法吗 可是我在子类内写了同名的方法 当其中一个有参数时就报错 如果两个都没有就没问题 请问为什么。。。。。


回复讨论(解决方案)

这样看来 这两个方法不是都是独立的吗 为什么还要报错 弄的我很郁闷

private 私有的
是不可侵犯的

私有,继承是可以继承的,但是确实不能运行加显示,你既然已经在A类中将text()设置为私有,那么虽然在C类中继承了下载,但是却是不能运行,如果你在A类中加一个公共的调用text()的方法。然后在C类中就行调用,看看可以不。版主大人真是一阵见血。

也就是说其实已经继承了一下 只是不能被运行而已 这样理解对吗

不对!

class A{         private function test($n){        echo "11";    }}class B extends A{    function test($n){        echo "22";             }}class C extends A{ }print_r(get_class_methods('A'));print_r(get_class_methods('B'));print_r(get_class_methods('C'));
로그인 후 복사
Array
(
)
Array
(
    [0] => test
)
Array
(
)

private方法只是不能操作而已,不能与就没有了,
你要明白面向对象的概念,B继承A的概念是,B是更具体的A,B是A,A有的,B都会有

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