PHP의 오버로드와 재정의의 차이점

墨辰丷
풀어 주다: 2023-03-27 22:54:02
원래의
1421명이 탐색했습니다.

이 글에서는 주로 PHP의 오버로드와 오버라이드의 차이점을 소개합니다. 매우 좋은 참조 값을 가지고 있으니 아래 에디터로 살펴보겠습니다

override(다시 쓰기, 재정의)

1 메소드 이름, 매개변수, 반환 값은 동일합니다.

2. 하위 클래스 메서드는 상위 클래스 메서드의 액세스 권한을 줄일 수 없습니다.

3. 하위 클래스 메서드는 상위 클래스 메서드보다 더 많은 예외를 발생시킬 수 없습니다(그러나 하위 클래스 메서드는 예외를 발생시킬 필요가 없습니다).

4. 상위 클래스와 하위 클래스 사이에 존재합니다.

5. 메소드는 최종으로 정의되며 재정의될 수 없습니다.

overload(오버로드, 오버로드)

1. 매개변수 유형, 개수, 순서 중 하나 이상이 다릅니다.

2. 반환 값이 다른 메서드 이름은 오버로드될 수 없습니다.

3. 상위 클래스, 하위 클래스 및 유사한 클래스에 존재합니다.

메서드 재정의와 오버로딩은 Java 다형성의 다른 표현입니다.

오버라이딩은 상위 클래스와 하위 클래스 간의 다형성을 나타내는 것이고, 오버로딩은 클래스에서의 다형성을 나타내는 것입니다.

하위 클래스에 정의된 메서드가 상위 클래스와 동일한 이름과 매개변수를 갖는 경우 해당 메서드가 재정의된다고 말합니다. 하위 클래스의 객체가 이 메서드를 사용하면 하위 클래스의 정의가 호출됩니다. 이를 위해 상위 클래스의 정의는 "보호"됩니다.

동일한 이름을 가진 여러 메서드가 클래스에 정의된 경우 매개변수의 개수가 다르거나 매개변수 유형이 다르거나 매개변수 순서가 다른 경우를 메소드 오버로딩(Overloading)이라고 합니다.

1. 재정의 기능

1 재정의 효과를 얻으려면 재정의된 메서드의 플래그와 완전히 일치해야 합니다.

2. 재정의된 메서드의 반환 값은 재정의된 메서드의 반환 값과 일치해야 합니다.

3. 재정의된 메서드에서 발생한 예외는 재정의된 메서드 또는 해당 하위 클래스에서 발생한 예외와 일치해야 합니다.

4. 재정의된 메서드는 비공개일 수 없습니다. 그렇지 않으면 재정의하지 않고 하위 클래스에 새 메서드만 정의됩니다.

2. 오버로드 기능

1. 오버로드를 사용할 때는 다른 매개변수 스타일만 사용할 수 있습니다. 예를 들어, 다양한 매개변수 유형, 다양한 매개변수 수, 다양한 매개변수 순서(물론 동일한 메소드의 여러 매개변수 유형은 달라야 합니다. 예를 들어 fun(int, float)일 수 있지만 fun(int)일 수는 없습니다. , int ));

2. 액세스 권한, 반환 유형 및 예외 발생을 통해 오버로드를 수행할 수 없습니다.

3. 상속의 경우 메소드의 경우에는 영향을 미치지 않습니다. 상위 클래스에서 권한 있는 액세스가 있으면 하위 클래스에서 오버로드할 수 없습니다. 정의된 경우 새 메서드만 정의하고 오버로드 효과를 얻을 수 없습니다.

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

관련 추천:

오버라이드와 오버로드의 차이점과 연관성 소개


PHP 객체 지향 - 일반 객체 지향 언어에서 메서드 오버로드 시뮬레이션에 대한 자세한 소개 ​​(

오버로드

)
PHP 객체 지향 - 오버로드를 자세히 설명하는 샘플 코드(

overload

ing)

위 내용은 PHP의 오버로드와 재정의의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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