2024-05-17

PHP面向对象编程的深入理解:对象属性和方法的继承

php 面向对象编程中的属性和方法继承:子类继承父类的非私有属性,可通过父级关键字修改。子类继承父类的非私有方法,可通过 override 覆盖。php 支持多级继承,但相同名称方法只继承其中一个父类的方法。

PHP面向对象编程的深入理解:对象属性和方法的继承

PHP 面向对象编程的深入理解:对象属性和方法的继承

在 PHP 中,对象属性和方法的继承是面向对象编程的关键概念。它允许子类访问和修改其父类的属性和方法。

属性继承

当子类从父类继承时,子类会自动继承父类的所有非私有属性。子类可以使用这些属性,但不能直接修改它们。要修改父类的属性,子类必须使用 parent:: 关键字。例如:

class ParentClass {
    protected $name = 'Parent';
}

class ChildClass extends ParentClass {
    public function getName() {
        return parent::$name;
    }
}

$child = new ChildClass();
echo $child->getName(); // Output: Parent
$child->name = 'Child'; // Error: Cannot modify inherited property directly
登录后复制

方法继承

子类还继承父类的所有非私有方法。子类可以使用这些方法,也可以使用 override 关键字重新定义父类中的方法。例如:

class ParentClass {
    public function sayHello() {
        echo 'Hello from Parent!';
    }
}

class ChildClass extends ParentClass {
    public function sayHello() {
        parent::sayHello(); // Call the parent method
        echo 'Hello from Child!';
    }
}

$child = new ChildClass();
$child->sayHello(); // Output: Hello from Parent! Hello from Child!
登录后复制

多级继承

PHP 支持多级继承,这意味着一个子类可以从多个父类继承。在这种情况下,子类将继承所有父类的属性和方法。但是,如果多个父类定义了具有相同名称的方法,子类将只继承其中一个父类的方法。要访问另一个父类的方法,子类必须使用 parent:: 关键字。

实战案例:

图书管理系统

考虑一个图书管理系统,其中有 Book 和 EBook 类:

class Book {
    private $title;
    private $author;
登录后复制

以上就是PHP面向对象编程的深入理解:对象属性和方法的继承的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/794850.html

发表回复

Your email address will not be published. Required fields are marked *