TEL. 053-453-6585
OPEN&CLOSE.  9:00~19:00
CLODED SHOP.  MONDAY
 
 
 

java 오버라이딩 예제

2019年8月2日

메서드 재정의는 런타임 다형성의 예입니다. 부모 클래스 참조가 자식 클래스 개체를 가리키면 메서드 호출 중에 실행될 메서드(부모 클래스 또는 자식 클래스)가 개체 유형에 따라 결정되기 때문에 재정의된 메서드에 대한 호출이 런타임에 결정됩니다. 재정의된 메서드에 대한 호출이 런타임에 해결되는 이 프로세스를 동적 메서드 디스패치라고 합니다. 이를 이해하는 예제를 볼 수 있습니다: 메서드 재정의의 목적은 여기에 명확합니다. 자식 클래스는이 방법을 호출 할 때, 그것은 소년이 먹는 대신 인간이 먹고 인쇄되도록 자신의 구현을 제공하고자합니다. 모든 개체 지향 프로그래밍 언어에서 재정의는 하위 클래스 또는 자식 클래스가 이미 수퍼 클래스 또는 상위 클래스 중 하나에서 제공하는 메서드의 특정 구현을 제공할 수 있도록 하는 기능입니다. 하위 클래스의 메서드에 동일한 이름, 동일한 매개 변수 또는 서명 및 동일한 반환 형식(또는 하위 형식)이 해당 수퍼 클래스의 메서드와 같으면 하위 클래스의 메서드가 수퍼 클래스의 메서드를 재정의한다고 합니다. 두 개 이상의 독립적으로 정의된 기본 메서드가 충돌하거나 기본 메서드가 추상 메서드와 충돌하는 경우 Java 컴파일러는 컴파일러 오류를 생성합니다. 수퍼타이프 메서드를 명시적으로 재정의해야 합니다. 인터페이스의 기본 메서드와 추상 메서드는 인스턴스 메서드처럼 상속됩니다. 그러나 클래스 또는 인터페이스의 상위 형식이 동일한 시그니처를 가진 여러 기본 메서드를 제공하는 경우 Java 컴파일러는 상속 규칙을 따라 이름 충돌을 해결합니다.

이러한 규칙은 하위 클래스(자식 클래스)가 부모 클래스에서 선언된 것과 동일한 메서드를 사용하는 경우 Java에서 재정의하는 메서드라고 합니다. 앞서 설명한 것처럼 재정의된 메서드를 사용하면 Java에서 런타임 다형성을 지원할 수 있습니다. 다형성은 한 가지 이유로 개체 지향 프로그래밍에 필수적입니다: 일반 클래스는 하위 클래스가 이러한 메서드의 일부 또는 전부의 특정 구현을 정의할 수 있도록 하면서 모든 파생 상품에 공통되는 메서드를 지정할 수 있습니다. 재정의된 메서드는 Java가 다형성의 “하나의 인터페이스, 여러 메서드” 측면을 구현하는 또 다른 방법입니다. 메서드 오버로드 및 재정의는 Java 프로그래밍 언어의 주요 개념이며, 따라서 심층적인 모양을 받을 자격이 있습니다.

コメント