Heim >Backend-Entwicklung >PHP-Tutorial >子类继承父类 父类private问起求各位大神详解

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

WBOY
WBOYOriginal
2016-06-23 14:14:23783Durchsuche

<?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都会有

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn