PHP 面向对象编程中的抽象方法可见性
Abstract methods visibility in PHP Object-oriented programming
我有一个抽象class,我不知道定义test()
函数的两种方式之间的区别
abstract class Foo {
abstract protected function test();
}
还有这个
abstract class Foo {
abstract function test();
}
这有什么区别吗?
Class methods may be defined as public, private, or protected. Methods declared without any explicit visibility keyword are defined as public.
所以答案是否定的,它们不一样:
abstract protected function test();
只能在 class 本身内以及通过继承和父 classes; 访问
abstract function test();
可以从任何地方访问。
为了与 PHP 4 兼容(其中所有内容都是 public 并且无法指定其他内容),class 属性和方法的 default visibility 是public
.
因此,
abstract class Foo {
abstract function test();
}
等同于:
abstract class Foo {
abstract public function test();
}
我有一个抽象class,我不知道定义test()
函数的两种方式之间的区别
abstract class Foo {
abstract protected function test();
}
还有这个
abstract class Foo {
abstract function test();
}
这有什么区别吗?
Class methods may be defined as public, private, or protected. Methods declared without any explicit visibility keyword are defined as public.
所以答案是否定的,它们不一样:
abstract protected function test();
只能在 class 本身内以及通过继承和父 classes; 访问
abstract function test();
可以从任何地方访问。
为了与 PHP 4 兼容(其中所有内容都是 public 并且无法指定其他内容),class 属性和方法的 default visibility 是public
.
因此,
abstract class Foo {
abstract function test();
}
等同于:
abstract class Foo {
abstract public function test();
}