我有一个抽象类,我不知道定义test()
函数的两种方法之间的区别
abstract class Foo {
abstract protected function test();
}
和这个
abstract class Foo {
abstract function test();
}
它有什么不同吗?
答案 0 :(得分:3)
类方法可以定义为public,private或protected。 声明没有任何明确可见性关键字的方法被定义为公开。
所以答案是否定的,它们不一样:
abstract protected function test();
只能在类本身以及继承和父类中访问; abstract function test();
可以从任何地方访问。答案 1 :(得分:1)
为了与PHP 4兼容(其中所有内容都是公开的,并且无法指定其他内容),类属性和方法的default visibility为public
。
因此,
abstract class Foo {
abstract function test();
}
与:
相同abstract class Foo {
abstract public function test();
}