Java에는 변수, 메소드, 데이터 유형 또는 패키지와 같은 다양한 유형의 엔터티에 대해 다양한 이름 재사용 기술이 있습니다. 이러한 기술은 필요와 용도에 따라 개체의 접근성과 동작에 영향을 미칩니다. 이 기사에서는 Java에서 이름을 재사용하는 네 가지 일반적인 방법인 재정의, 숨기기, 오버로딩 및 섀도잉에 대해 설명합니다.
이 기술을 사용하면 지역 변수가 다른 필드 또는 바깥쪽 클래스의 멤버와 동일한 이름을 가질 수 있습니다. 이 경우 새 변수 선언으로 인해 멤버의 이전 구현이 모호해집니다. 숨겨진 변수는 숨겨진 범위에서 간단한 이름으로 액세스할 수 없습니다.
다음 예는 변수 음영을 보여줍니다
으아아아위 코드에서는 "printX()" 메서드에서 인스턴스 변수 "val1"을 숨겼습니다. "val1"에 액세스하려면 "this" 키워드를 사용합니다.
이 기술을 사용하면 하위 클래스가 상위 클래스에 정의된 정적 메서드나 필드를 숨길 수 있습니다. 하위 클래스 엔터티는 상위 클래스 엔터티와 동일한 이름과 서명을 가져야 합니다. 최대 우리 중 일부는 숨는 것이 압도적이라고 잘못 믿고 있습니다. 메서드 재정의에서는 하위 클래스가 대체됩니다. 새로운 메소드로 원래의 메소드를 구현하지만, 숨어서 숨길 뿐입니다. 슈퍼 클래스 방법. 또한 정적 메서드를 재정의할 수 없습니다.
다음 예에서는 메서드 숨기기를 보여줍니다.
으아아아위 코드에서는 "Super" 및 "Sub" 클래스와 "print()"를 정의합니다. 방법. 'Sub' 클래스의 'print()' 메소드는 'Super' 클래스의 메소드를 숨깁니다. 's2.print'인 경우 하위 클래스의 내용을 인쇄한 다음 이 예를 고려합니다. 숨겨지지 않고 메서드로 재정의되었습니다.
이름은 같지만 목록이 다른 두 개 이상의 메소드를 생성하는 경우 그런 다음 매개변수가 동일한 클래스 본문에 있으면 이를 메소드 오버로딩이라고 합니다. 번역가 매개변수 유형을 기반으로 컴파일 타임 메서드 호출을 결정합니다
이 예에서는 메소드 오버로딩 구현을 보여줍니다.
으아아아위 코드에서는 이름은 같지만 매개변수가 다른 두 가지 메서드를 정의합니다. 통화 중에 우리는 다른 주장을 사용했습니다.
슈퍼클래스와 서브클래스에서 동일한 이름과 동일한 매개변수 목록을 가진 두 개 이상의 메소드를 생성하는 것을 메소드 오버라이딩이라고 합니다. 메소드의 반환 유형도 동일합니다.
다음 예제에서는 메서드 재정의를 보여줍니다.
으아아아위 코드에서 하위 클래스 "Ovriid2"는 상위 클래스의 "methodA()"를 재정의합니다.
이 글에서는 메소드 오버로딩, 숨기기, 숨기기, 메소드 오버라이딩 등 변수 및 메소드 이름을 재사용하는 다양한 기술을 배웠습니다. 또한 이를 실제로 Java 프로그램에서 구현하는 방법도 살펴보았습니다.
위 내용은 Java의 다양한 이름 재사용 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!