<?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方法吗 可是我在子类内写了同名的方法 当其中一个有参数时就报错 如果两个都没有就没问题 请问为什么。。

解决方案 »

  1.   

    private 私有的
    是不可侵犯的
      

  2.   

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

  3.   

    不对!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
    (
    )
      

  4.   

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