php - 在 PHP 中覆盖扩展类中的命名空间使用

标签 php oop inheritance namespaces

覆盖扩展类中的命名空间使用

是否可以在不重写扩展类中的函数的情况下覆盖父类使用的命名空间?

为了澄清,我写了一个例子:

我有两个这样的类(class):

namespace one;
class hey
{
    public static function say()
    {
        echo "hey";
    }
}


namespace two;
class hey
{
    public static function say()
    {
        echo "ho";
    }
}

现在我使用了这个类中的命名空间:
use one\hey;
class saysomething
{
    public static function main()
    {
        hey::say();
    }
}

现在我想扩展最后一节课:
class extended extends saysomething
{
}

extended::main();

在这个类中,我想在不覆盖函数的情况下使用命名空间“二\一”,这可能吗? *如果是,如何?
感谢您的时间。

最佳答案

您必须定义 extended::main()extended类,像这样:

use two\hey;

class extended extends saysomething
{
    public static function main()
    {
        hey::say(); // will call two/hey::say method
    }
}

命名空间在这里无济于事。

关于php - 在 PHP 中覆盖扩展类中的命名空间使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915887/

相关文章:

php - MySQL查询从对话列表中获取用户列表

JavaScript:这个构造函数有什么问题?

oop - 隐藏基类的虚方法有什么问题?

JPA 标准搜索具有子类的抽象集合中的属性

c# - 将子类转换为继承类

php - 使用 php、mysql 和 javascript 进行考勤

php - 我需要在另一个中使用一个 mySQL 查询的输出(它的值)

php - 具有多个不等于 where 子句的 Select 语句

java - 多态性在 Java 中的方法参数中不起作用

javascript - __proto__ 和 JavaScript 中的继承