Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: lanjutan dan penyesuaian pengaturcaraan berorientasikan objek

Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: lanjutan dan penyesuaian pengaturcaraan berorientasikan objek

王林
王林asal
2024-06-04 11:26:04249semak imbas

Pengaturcaraan berorientasikan objek PHP boleh dilanjutkan melalui sambungan dan kelas tersuai. Kelas lanjutan mewarisi sifat dan kaedah kelas induk dan boleh menambah sifat dan kaedah baharu; kelas tersuai melaksanakan fungsi tertentu dengan melaksanakan kaedah antara muka. Dalam kes sebenar, dengan memanjangkan kelas abstrak Bentuk, bentuk konkrit seperti Bulatan dan Segiempat tepat dicipta, dan kawasan boleh dikira secara dinamik.

Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: lanjutan dan penyesuaian pengaturcaraan berorientasikan objek

Pengaturcaraan Berorientasikan Objek PHP: Sambungan dan Penyesuaian

pengaturcaraan berorientasikan objek (OOP) membolehkan anda mencipta kod yang boleh digunakan semula dan boleh diselenggara. Dalam PHP, OOP boleh diperluaskan lagi dengan melanjutkan dan menyesuaikan kelas sedia ada.

Kelas lanjutan

Gunakan kata kunci lanjutkan untuk melanjutkan kelas. Kelas lanjutan mewarisi semua sifat dan kaedah kelas induk dan boleh menambah sifat dan kaedah baharu. extends 关键字可以扩展一个类。扩展后的类继承父类的所有属性和方法,并可以添加新属性和方法。

class BaseClass {
    protected $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}

class ExtendedClass extends BaseClass {
    private $age;

    public function __construct($name, $age) {
        parent::__construct($name);
        $this->age = $age;
    }

    public function getAge() {
        return $this->age;
    }
}

定制类

使用 implements 关键字可以定制一个类,让它实现一个或多个接口。接口定义了一组方法,该类必须实现这些方法。

interface MyInterface {
    public function doSomething();
}

class MyClass implements MyInterface {
    public function doSomething() {
        // 具体实现
    }
}

实战案例

考虑一个抽象类 Shape,它定义了一个 getArea() 方法。我们扩展此类以创建具体形状,例如 CircleRectangle

abstract class Shape {
    protected $color;

    public function __construct($color) {
        $this->color = $color;
    }

    abstract public function getArea();
}

class Circle extends Shape {
    private $radius;

    public function __construct($color, $radius) {
        parent::__construct($color);
        $this->radius = $radius;
    }

    public function getArea() {
        return pi() * $this->radius ** 2;
    }
}

class Rectangle extends Shape {
    private $width;
    private $height;

    public function __construct($color, $width, $height) {
        parent::__construct($color);
        $this->width = $width;
        $this->height = $height;
    }

    public function getArea() {
        return $this->width * $this->height;
    }
}

我们可以创建 CircleRectangle 对象并访问它们各自的 getArea()rrreee

🎜Kelas tersuai🎜🎜🎜Gunakan kata kunci implements untuk menyesuaikan kelas supaya ia melaksanakan satu atau lebih antara muka. Antara muka mentakrifkan satu set kaedah yang mesti dilaksanakan oleh kelas. 🎜rrreee🎜🎜Kes praktikal🎜🎜🎜Pertimbangkan kelas abstrak Bentuk, yang mentakrifkan kaedah getArea(). Kami memperluaskan kelas ini untuk mencipta bentuk konkrit seperti Bulatan dan Rectangle. 🎜rrreee🎜Kami boleh mengira kawasan secara dinamik dengan mencipta objek Bulatan dan Rectangle dan mengakses kaedah getArea() masing-masing. 🎜

Atas ialah kandungan terperinci Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: lanjutan dan penyesuaian pengaturcaraan berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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