메서드 오버로딩과 재정의의 차이점은 무엇입니까?



이 기사에서는 수퍼 키워드 및 다양한 규칙을 포함한 다양한 예제를 통해 Java에서 메소드 오버로딩과 오버라이드의 주요 차이점을 다룹니다.

Java 프로그래밍 언어는 최고의 선택입니다. . 다음과 같은 개념으로 클래스 , , 등 작업이 매우 쉬워집니다. . 손쉬운 액세스와 쉬운 구문은 코드를 효율적이고 덜 복잡하게 만듭니다. 이 기사에서는 Java에서 메소드 오버로딩 및 오버라이드에 대해 알아 봅니다. 다음은이 블로그에서 논의 된 주제입니다.

Java에서 메소드 오버로딩이란 무엇입니까?

메서드 오버로딩을 사용하면 메서드가 인수 또는 인수 유형에 따라 다른 동일한 이름을 가질 수 있습니다. 컴파일 타임 다형성과 관련 될 수 있습니다. 다음은 Java에서 메서드를 오버로딩 할 때 염두에 두어야 할 몇 가지 지침입니다.





  • 반환 유형을 오버로드 할 수 없습니다.

  • 과부하가 걸릴 수 있지만 , 인수 또는 입력 매개 변수가 달라야합니다.



  • 정적 키워드 만 다른 경우 두 메서드를 오버로드 할 수 없습니다.

  • 다른 정적 메서드와 마찬가지로 main () 메서드도 오버로드 될 수 있습니다.

    꼭두각시 대 요리사 대 ansible

메소드 오버로딩-Javaedureka에서 메소드 오버로딩 및 오버라이드



파이썬에서 메서드 오버로딩이 어떻게 작동하는지 이해하기 위해 간단한 프로그램을 살펴 보겠습니다.

public class Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static void main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 산출: 5 4

위의 프로그램에는 이름은 같지만 매개 변수가 다른 두 가지 메서드가 있습니다. 이것이 메서드 오버로딩이 작동하는 방식입니다. .

왜 메서드 오버로딩인가?

Java에서 메소드 오버로딩을 사용하는 주요 이점은 동일한 작업을 수행하기 위해 함수를 반복해서 정의하지 않아도된다는 것입니다. 아래 예에서 두 가지 방법은 기본적으로 나누기를 수행하므로 이름은 같지만 매개 변수가 다른 다른 방법을 가질 수 있습니다. 또한 컴파일 타임 다형성에도 도움이됩니다.

main () 메서드 오버로드 :

다음은 java에서 main () 메소드를 오버로드하는 예제입니다.

public class Edureka {public static void main (String [] args) {System.out.println ( 'hello') Edureka.main ( 'edurekan')} public static void main (String arg1) {System.out.println ( ' welcome '+ arg1) Edureka.main ('welcome ','to edureka ')} public static void main (String arg1, String arg2) {System.out.println ('hello ', + arg1, + arg2)}}
 산출: 안녕하세요 edurekan 환영합니다 안녕하세요, edureka에 오신 것을 환영합니다

메서드 오버로딩 예

  • 자바에서 정적 메소드를 오버로드하는 프로그램.
public class Test {public static int func (int a) {return 100} public static char func (int a, int b) {return 'edureka'} public static void main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 산출: 100 edureka
  • 같은 이름의 세 가지 메서드를 오버로드하는 프로그램입니다.
public class Add {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, double b) {return (a + b)} public static void main (String args []) {Add ob = new Add () ob.add (15,25) ob.add (15,25,35) ob .add (11.5, 22.5)}}
 산출: 40 75 34

Java에서 메서드 재정의 란 무엇입니까?

Java의 상속에는 상위 및 하위 클래스 간의 관계가 포함됩니다. 두 클래스 모두 동일한 이름과 인수 또는 매개 변수를 가진 메서드를 포함 할 때마다 메서드 중 하나가 실행 중에 다른 메서드를 재정의하게됩니다. 실행될 방법은 객체에 따라 다릅니다.

자식 클래스 개체가 메서드를 호출하면 자식 클래스 메서드가 부모 클래스 메서드를 재정의합니다. 그렇지 않으면 부모 클래스 개체가 메서드를 호출하면 부모 클래스 메서드가 실행됩니다.

메서드 재정의는 Java에서 런타임 다형성을 구현하는데도 도움이됩니다. 자바에서 메소드 재정의가 어떻게 작동하는지 이해하기 위해 간단한 예를 들어 보겠습니다.

class Parent {void view () {System.out.println ( 'this is a parent class method)}} class Child extends Parent {void view () {System.out.println ('this is a child class method)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 산출: 이것은 자식 클래스 메서드입니다.

메서드 재정의 규칙

  • 그만큼 액세스 편집 재정의 된 메서드에 대해서만 더 많은 액세스를 허용 할 수 있습니다.

  • 결정적인 메서드는 메서드 재정의를 지원하지 않습니다.

    자바에서 split 메소드를 사용하는 방법
  • 정적 메서드는 재정의 할 수 없습니다.

  • 개인 메서드는 재정의 할 수 없습니다.

  • 재정의 메서드의 반환 유형은 동일해야합니다.

  • super 키워드를 사용하여 재정의 메서드에서 부모 클래스 메서드를 호출 할 수 있습니다.

  • 건축업자 하위 클래스와 상위 클래스는 동일한 이름의 생성자를 가질 수 없으므로 재정의 할 수 없습니다.

메서드 재정의 예제

  • super 키워드를 사용하여 재정의를 표시하는 프로그램
class Parent {void show () {System.out.println ( 'parent class method')} class Child extends Parent {void show () {super.show () System.out.println ( 'child class method')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 산출: 부모 클래스 메서드 자식 클래스 메서드

오버로딩과 재정의 : 메서드 오버로딩과 메서드 재정의의 차이점

다음은 Java에서 메서드 오버로딩과 재정의의 주요 차이점입니다.

메서드 오버로딩 메서드 재정의
  • 프로그램의 가독성을 높이는 데 사용됩니다.
  • 이미 부모 클래스에있는 메서드의 특정 구현을 제공합니다.
  • 동일한 클래스 내에서 수행됩니다.
  • 여러 클래스를 포함합니다.
  • 과부하의 경우 매개 변수가 달라야합니다.
  • 재정의의 경우 매개 변수가 동일해야합니다.
  • 컴파일 타임 다형성의 예입니다.
  • 런타임 다형성의 예입니다.
  • 반환 유형은 다를 수 있지만 매개 변수도 변경해야합니다.
  • 반환 유형은 재정의에서 동일해야합니다.
  • 정적 메서드는 오버로드 될 수 있습니다.
  • 재정의에는 정적 메서드가 포함되지 않습니다.

이 블로그에서는 메서드 오버로딩과 메서드 재정의에 대해 자세히 설명했습니다. 클래스, 객체, 상속 및 다형성과 같은 개념의 관련으로 Java에서 메서드를 오버로드하거나 재정의하는 것이 무엇을 의미하는지 명확하게 이해하는 것이 상당히 중요합니다.

Java 프로그래밍 언어는 객체 지향 프로그래밍의 정점이며 많은 애플리케이션을 통합합니다. 수요와 인기로 인해 야심 찬 자바 개발자는 프로그래밍 언어의 기본 개념에 능숙해야합니다. Edureka에 등록 학습을 시작합니다.

질문이 있으십니까? 이 기사의 '자바에서 메서드 오버로딩 대 메서드 재정의'에 대한 주석 섹션에서이를 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.

예제가있는 mysql의 데이터 유형