상속

상속

■상속이란?

기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 만드는 것이다.

부모 클래스(상위 클래스) -> 자식 클래스(하위 클래스)

■상속

PHP에서는 상속(inheritance)을 통해 클래스 간의 계층 관계를 만들 수 있다.

자식 클래스는 부모 클래스의 모든 public, protected 멤버를 상속받게 된다.

PHP에서는 extend 키워드를 사용하여 상속을 정의한다.

class B extends A { B 클래스만의 프로퍼티와 메소드; }

B클래스는 A클래스의 자식 클래스가 되고, A클래스는 B클래스의 부모 클래스가 된다.

B클래스는 A클래스의 private 멤버를 제외한 모든 프로퍼티와 메소드를 상속받아 사용할 수 있다.

이렇게 상속을 이용하면 기존에 작성된 클래스를 손쉽게 재활용할 수 있다.

또한, 공통적인 부분은 부모 클래스에 미리 작성하여, 자식 클래스에서 중복되는 부분을 제거할 수 있다.

PHP에서는 둘 이상의 부모 클래스에서 프로퍼티와 메소드를 상속받을 수 없다.

하나의 부모 클래스가 여러 자식 클래스를 가질 수는 있지만, 자식 클래스는 오직 부모 클래스를 하나만 가질 수 있다.

■오버라이딩

이미 정의된 메소드를 같은 이름의 메소드로 다시 정의하는 것이다.

즉, 상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것이다.

class A { public $property = "class A"; public function showProperty() { echo $this->property.""; } } class B extends A // 클래스 A를 상속 받음. { public $property = "class B"; public function showProperty() // 클래스 A의 메소드를 오버라이딩 { echo "hello ".$this->property.""; } } $a = new A(); $a->showProperty(); // 클래스 A의 메소드 호출 class A $b = new B(); $b->showProperty(); // 클래스 B의 메소드 호출 hello class B

from http://woong971.tistory.com/39 by ccl(A) rewrite - 2021-10-30 14:00:47