编程语言子类继承父类 父类private问起求各位大神详解
<?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都会有
文章来源:https://www.php.cn/faq/263062.html
赞 (0)