PHP 객체 지향 프로그래밍 고급: 다형성 및 상속 이해

王林
풀어 주다: 2024-05-08 18:06:01
원래의
577명이 탐색했습니다.

객체 지향 프로그래밍에서 다형성을 사용하면 객체가 동일한 메서드 호출에 다른 방식으로 응답할 수 있으며, 상속을 통해 하위 클래스는 상위 클래스 기능을 상속하고 확장할 수 있습니다. 다형성은 동물, 개, 고양이 객체의 talk() 메소드와 같이 동일한 메소드에 대해 서로 다른 유형의 객체가 차등적으로 반응하는 경우에 나타납니다. 상속은 상위 클래스로부터 데이터와 메소드를 상속하는 하위 클래스에 반영됩니다. 예를 들어, Employee 클래스는 human 클래스로부터 이름과 나이를 상속하고 새로운 급여 속성을 추가합니다. 실제 사례에서 kiwi 클래스는 과일 클래스의 과일 이름을 상속받는 반면, 스포츠카 클래스는 다형성을 통해 부모 클래스의 getType() 메서드를 다시 작성하여 car 클래스의 동일한 메서드에 대해 서로 다른 응답을 구현하고 "car"를 반환합니다. " 및 "car" 각각 "스포츠카"에 대한 정보를 입력합니다.

PHP 对象导向编程进阶:理解多态和继承

고급 PHP 객체 지향 프로그래밍: 다형성 및 상속 이해

개요

다형성과 상속은 객체 지향 프로그래밍(OOP)의 두 가지 기본 개념입니다. 다형성을 통해 객체는 동일한 메서드 호출에 다양한 방식으로 응답할 수 있으며, 상속을 통해 기존 클래스의 기능을 상속하고 확장하는 새 클래스를 만들 수 있습니다.

다형성

다형성을 사용하면 객체가 유형에 따라 다른 작업을 수행할 수 있습니다.

class Animal {
    public function speak() {
        echo "Animal speaks\n";
    }
}

class Dog extends Animal {
    public function speak() {
        echo "Dog barks\n";
    }
}

class Cat extends Animal {
    public function speak() {
        echo "Cat meows\n";
    }
}

$dog = new Dog();
$dog->speak();  // 输出:Dog barks

$cat = new Cat();
$cat->speak();  // 输出:Cat meows
로그인 후 복사

상속

상속을 사용하면 기존 클래스(상위 클래스)에서 데이터와 메서드를 상속하는 새 클래스(하위 클래스)를 만들 수 있습니다.

class Person {
    protected $name;
    protected $age;

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

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

class Employee extends Person {
    private $salary;

    public function __construct($name, $age, $salary) {
        parent::__construct($name, $age);  // 调用父类构造函数
        $this->salary = $salary;
    }

    public function getSalary() {
        return $this->salary;
    }
}

$employee = new Employee("John Doe", 30, 50000);
echo "Employee name: " . $employee->getName() . "\n";
echo "Employee salary: " . $employee->getSalary() . "\n";
로그인 후 복사

실용 사례

과일 클래스와 키위 클래스(상속)

class Fruit {
    protected $name;

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

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

class Kiwi extends Fruit {
    public function __construct() {
        parent::__construct("Kiwi");
    }
}

$kiwi = new Kiwi();
echo "Fruit name: " . $kiwi->getName() . "\n";
로그인 후 복사

자동차 클래스와 스포츠카 클래스(다형성)

class Car {
    protected $make;
    protected $model;

    public function __construct($make, $model) {
        $this->make = $make;
        $this->model = $model;
    }

    public function getType() {
        return "Car";
    }
}

class SportsCar extends Car {
    public function getType() {
        return "Sports Car";
    }
}

$car = new Car("Toyota", "Camry");
$sportsCar = new SportsCar("Ferrari", "F430");

echo "Car type: " . $car->getType() . "\n";
echo "Sports car type: " . $sportsCar->getType() . "\n";
로그인 후 복사

위 내용은 PHP 객체 지향 프로그래밍 고급: 다형성 및 상속 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿