메서드 오버로딩: 동일한 클래스에서 (동일한 기능을 구현하는 데 사용되지만 다양한 사용자를 만족시키기 위해 다른 매개변수가 필요함)
은 동일한 이름, 동일하거나 다른 반환 값을 가진 여러 메소드가 있지만 다른 매개변수(매개변수 수 또는 매개변수 유형)가 클래스에 정의될 수 있음을 의미합니다. 호출 시 사용자가 API를 사용하는 것이 간단하고 편리한 오버로딩을 사용합니다. 동일한 함수를 갖는 메소드에 다른 이름을 지정할 필요가 없으므로 사용자에게는 동일한 작업을 수행하는 것이 동일한 함수를 호출하는 것과 같습니다. 생성자도 오버로드될 수 있습니다. 프로그램이 자체 구성 방법을 정의하는 한 시스템은 기본 구성 방법을 제공하지 않습니다.
메소드 덮어쓰기(재작성): (하위 클래스가 다른 클래스에서 상위 클래스의 메소드를 대체함)
메소드 대체(재정의/덮어쓰기)
오버로딩과의 차이점: 메소드 오버로딩 한 클래스에 여러 함수를 다음과 같이 정의하는 것입니다. 동일한 이름과 동일한 반환 유형이지만 매개변수가 다릅니다
메서드를 재정의할 때: 상위 클래스의 함수를 복사하는 것이 가장 좋습니다
1 하위 클래스에서는 필요에 따라 기본에서 함수를 복사할 수 있습니다. 클래스의 상속된 메서드.
2. 재정의된 메서드는 재정의된 메서드와 동일한 메서드 이름, 매개변수 목록 및 반환 유형을 가져야 합니다.
3. 재정의된 방법은 재정의된 방법보다 더 제한적인 액세스 권한을 사용할 수 없습니다.
Strict order private>default>protecte>public, 이는 다형성과 관련이 있으며, 다형성에 관해 이야기할 때 훨씬 더 이해하게 될 것입니다. 상위 클래스에 의해 특정 위치가 수정되면 상위 클래스의 메소드를 호출할 수 있다. 하위 클래스가 이 메소드에 대해 더 엄격한 액세스 권한을 갖는 경우 하위 클래스를 전달할 때 액세스할 수 없게 될 수 있습니다
Java의 다형성: 오버로딩 + 덮어쓰기
질문: 다형성을 달성하기 위해 Java에서 어떤 메커니즘이 사용됩니까?
다형성은 Java의 객체 지향 기능 중 하나입니다. Java에서는 오버로드 및 덮어쓰기를 통해 다양한 다형성 표현이 달성됩니다. 그러나 둘 사이에는 차이가 있습니다.
1) 오버로드
Java에서 메서드를 오버로드한다는 것은 이름은 같지만 인수 열(매개변수 유형 및 번호)과 정의가 다른 여러 메서드를 만들 수 있음을 의미합니다. 반환값의 종류는 같을 수도 있고 다를 수도 있지만, 오버로드된 함수는 반환값만 다르다고 구분할 수는 없습니다. 메소드를 호출할 때 매개변수 목록을 사용하여 호출할 메소드를 결정합니다. 오버로딩은 클래스의 다형성을 나타냅니다.
2) 재정의
Java에서는 기본적으로 동일한 메서드를 다시 작성하지 않고도 하위 클래스가 상위 클래스의 메서드를 상속할 수 있습니다. 그러나 하위 클래스가 상위 클래스의 메서드를 그대로 상속하고 싶지 않은 경우도 있습니다. 메서드를 재정의(덮어쓰기라고도 함)하여 수행되는 수정입니다. Java에서 덮어쓰기란 동일한 함수의 구현 부분을 하위 클래스의 상위 클래스에서 동일한 이름으로 변경하지만 상위 클래스의 메소드 이름, 반환 유형 및 매개변수 목록을 일관되게 유지하는 것을 의미합니다. 즉, 하위 클래스는 상위 클래스의 함수를 재정의하고 하위 클래스의 새 메서드는 상위 클래스의 원래 메서드를 덮어씁니다. 재정의는 상위 클래스와 하위 클래스 간의 다형성 표현입니다.
위 내용은 JAVA 메소드의 오버로딩 및 재정의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!