이 글에서는 주로 PHP의 오버로드와 오버라이드의 차이점을 소개합니다. 참조값이 아주 좋은데 아래 에디터로 살펴보겠습니다
override(rewrite, override)
1. 값은 같습니다.
2. 하위 클래스 메서드는 상위 클래스 메서드의 액세스 권한을 줄일 수 없습니다.
3. 하위 클래스 메서드는 상위 클래스 메서드보다 더 많은 예외를 발생시킬 수 없습니다(그러나 하위 클래스 메서드는 예외를 발생시킬 필요가 없습니다).
4. 상위 클래스와 하위 클래스 사이에 존재합니다.
5. 메소드는 최종으로 정의되며 재정의될 수 없습니다.
overload(오버로드, 오버로드)
1. 매개변수 유형, 개수, 순서 중 하나 이상이 다릅니다.
2. 반환 값만 다른 메소드 이름은 오버로드될 수 없습니다.
3. 상위 클래스, 하위 클래스 및 유사한 클래스에 존재합니다.
메소드의 오버라이드와 오버로딩은 Java 다형성의 다양한 표현입니다.
오버라이딩은 상위 클래스와 하위 클래스 간의 다형성을 표현하는 것이고, 오버로딩은 클래스에서의 다형성을 표현하는 것입니다.
하위 클래스에 정의된 메서드가 상위 클래스와 동일한 이름과 매개변수를 갖는 경우 해당 메서드가 재정의된다고 말합니다. 하위 클래스의 객체가 이 메서드를 사용하면 하위 클래스의 정의가 호출됩니다. 이를 위해 상위 클래스의 정의는 "보호"됩니다.
동일한 이름을 가진 여러 정의가 정의된 경우 다양한 매개변수 수, 다양한 매개변수 유형 또는 다양한 매개변수 순서를 가질 수 있는 클래스 메소드를 메소드 오버로딩이라고 합니다. 액세스 권한, 반환 유형 및 예외 발생을 통해 오버로드될 수 없습니다.
1. 재정의된 메서드의 플래그는 재정의되어야 합니다. 재정의 효과는 메서드의 플래그가 완전히 일치하는 경우에만 얻을 수 있습니다.
2. 재정의된 메서드의 반환 값은 재정의된 메서드의 반환 값과 일치해야 합니다. 3 . 재정의된 메서드에서 발생한 값은 재정의된 메서드 또는 해당 하위 클래스에서 발생한 예외와 일치해야 합니다. 4. 재정의된 메서드는 비공개일 수 없습니다. 그렇지 않으면 새 메서드를 정의합니다. 하위 클래스에서는 다루지 않습니다.2. 오버로드 기능
1. 오버로드 사용 시 다른 매개변수 스타일만 사용할 수 있습니다. 예를 들어, 다양한 매개변수 유형, 다양한 매개변수 수, 다양한 매개변수 순서(물론 동일한 메소드의 여러 매개변수 유형은 달라야 합니다. 예를 들어 fun(int, float)일 수 있지만 fun(int)일 수는 없습니다. , int ));
2. 액세스 권한, 반환 유형 및 발생한 예외에 따라 오버로드가 수행될 수 없습니다. 3. 예외 유형 및 메소드 수는 오버로드에 영향을 미치지 않습니다. >4. 상속의 경우 메서드가 상위 클래스에서 권한 있는 액세스를 가지면 하위 클래스에서 오버로드할 수 없습니다. 정의하면 새 메서드만 정의하면 오버로드 효과를 얻을 수 없습니다.
위 내용은 PHP의overload와 override의 차이점에 대한 자세한 설명입니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!