>  기사  >  백엔드 개발  >  PHP 객체지향의 오버로딩과 재작성에 대한 자세한 설명

PHP 객체지향의 오버로딩과 재작성에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-25 14:55:421188검색

이 글에서는 주로 PHP 객체지향 객체의 오버로딩과 재작성을 소개합니다. 매우 좋은 참조 값을 가지고 있습니다. 오버라이딩은 상위 클래스와 하위 클래스 간의 다형성을 나타내는 것입니다. 오버로드된 메서드는 반환 값의 유형을 변경할 수 있습니다. 즉, 오버로드의 반환 값 유형은 동일할 수도 있고 다를 수도 있습니다.

오버로딩

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

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

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

2. 재정의

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

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

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

상위 클래스 멤버 메서드의 이름, 반환 유형, 매개변수 유형 및 번호가 정확히 동일하지만 내부 코드는 다음과 같습니다. Java에서는 이러한 종류의 재작성 방법을 멤버 메서드 리팩토링이라고 합니다. 하위 클래스는 부모 클래스 메서드의 권한을 인색한 것에서 넉넉한 것으로 재조정하거나 부모 클래스의 기능을 확장하거나 재조정하는 등의 작업을 수행할 수 있습니다. 파란색 상태의 하위 클래스이며 파란색보다 좋습니다. 개발 과정에서 프로그램 개발자는 서브클래스의 이러한 기능을 잘 활용해야 합니다. 그러나 다른 관점에서 보면 하위 클래스의 권한에 특정 제한을 적용하는 것도 필요합니다. 필요한 경우 하위 클래스에서 남용되는 것을 방지하기 위해 상위 클래스의 특정 메소드에 대한 권한을 제어해야 합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장사항:


javascript 시뮬레이션

overloading

, toString 메소드 재작성에 대한 자세한 답변

js 메소드 재작성 및
overloading

PHP 기능
오버로딩

분석 및 예시


위 내용은 PHP 객체지향의 오버로딩과 재작성에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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