Rumah > pembangunan bahagian belakang > tutorial php > 子类继承父类 父类private问起求各位大神详解

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

WBOY
Lepaskan: 2016-06-23 14:14:23
asal
779 orang telah melayarinya

<?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();?>
Salin selepas log masuk
此代码中父类有个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'));
Salin selepas log masuk
Array
(
)
Array
(
    [0] => test
)
Array
(
)

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

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan