>백엔드 개발 >PHP 튜토리얼 >PHP 객체 지향의 오버로드 및 재작성

PHP 객체 지향의 오버로드 및 재작성

高洛峰
高洛峰원래의
2017-02-18 16:44:36942검색

오버라이딩은 상위 클래스와 하위 클래스 간의 다형성을 나타내는 것이며, 오버로딩은 클래스에서의 다형성을 나타내는 것입니다. 오버로드된 메서드는 반환 값의 유형을 변경할 수 있습니다. 즉, 오버로드의 반환 값 유형은 동일할 수도 있고 다를 수도 있습니다.

오버로딩

a. 메소드 오버로딩은 클래스가 다양한 유형의 데이터를 통일된 방식으로 처리하는 수단입니다. 동일한 이름을 가진 여러 함수가 동시에 존재하며 매개변수의 수/유형이 다릅니다. 오버로딩은 클래스의 다형성을 나타냅니다.

b. Java에서 메소드 오버로드는 이름은 같지만 매개변수와 정의가 다른 여러 메소드를 생성할 수 있음을 의미합니다. 메소드를 호출할 때 전달된 매개변수의 수와 유형에 따라 사용할 메소드를 결정합니다. 이것이 다형성입니다.

c. 오버로딩 시 메소드 이름은 동일해야 하지만, 매개변수 유형과 개수가 다르며, 반환값 유형은 동일하거나 다를 수 있습니다. 반환 유형은 오버로드된 함수를 구별하는 기준으로 사용될 수 없습니다.

2. 재정의

a. 상위 클래스와 하위 클래스 간의 다형성, 상위 클래스의 기능 재정의. 하위 클래스에 정의된 메서드가 상위 클래스와 동일한 이름과 매개변수를 갖는 경우 해당 메서드가 재정의되고 있다고 말합니다. Java에서 하위 클래스는 동일한 메서드를 다시 작성할 필요 없이 상위 클래스로부터 메서드를 상속받을 수 있습니다. 그러나 때로는 하위 클래스가 상위 클래스의 메서드를 변경 없이 상속하기를 원하지 않지만 특정 수정을 하려고 하므로 메서드를 다시 작성해야 합니다. 메서드 재정의는 메서드 덮어쓰기라고도 합니다.

b. 하위 클래스의 메서드가 상위 클래스의 메서드와 동일한 메서드 이름, 반환 유형 및 매개변수 목록을 갖는 경우 새 메서드가 원래 메서드를 덮어씁니다. **부모 클래스에서 원래 메소드가 필요한 경우 현재 클래스의 부모 클래스를 참조하는 super 키워드를 사용할 수 있습니다**.

c. 하위 클래스 함수의 액세스 수정 권한은 상위 클래스의 액세스 수정 권한보다 작을 수 없습니다.

상위 클래스 멤버 메서드의 이름, 반환 유형, 매개변수 유형 및 번호가 정확히 일치하는 경우 동일하지만 내부 코드만 다릅니다. Java에서는 이 재작성 방법을 멤버 메소드 리팩토링

이라고 합니다. 하위 클래스는 상위 클래스 메소드의 권한을 인색한 것에서 관대한 것까지 다시 조정할 수 있습니다. 또는 상위 클래스의 권한 등을 다시 조정하여 하위 카테고리를 파란색으로 만드는 경우가 많지만 파란색보다 더 좋습니다. 개발 과정에서 프로그램 개발자는 서브클래스의 이러한 기능을 잘 활용해야 합니다. 그러나 다른 관점에서 보면 하위 클래스의 권한에 특정 제한을 적용하는 것도 필요합니다. 필요한 경우 하위 클래스에서 남용되는 것을 방지하기 위해 상위 클래스의 특정 메소드에 대한 권한을 제어해야 합니다.

PHP 객체의 오버로딩 및 재작성과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 정적 멤버 변수다음 기사:PHP 정적 멤버 변수