Java 기본 연구 노트 _ 상속 관계에서 멤버 변수 및 멤버 메서드의 사용 특성

1. Java 상속 관계에서 멤버 변수의 사용 특성 :

"근접의 원칙"을 따르고 현지 위치가있는 경우 사용합니다.

그렇지 않은 경우이 클래스의 멤버 위치로 이동하여 찾고있는 경우 사용하십시오.

그렇지 않은 경우 상위 클래스의 멤버 위치로 이동하여 찾아보고,있는 경우 사용하고,없는 경우 오류를보고하십시오.

public class Fruit {
    int price = 20;
}

public class Apple extends Fruit {
    int price = 10;
    public void showPrice() {
        int price = 5;
        System.outprintln(price);            //5
        System.outprintln(this.price);       //10
        System.outprintln(super.price);      //20
    }
}

public class Test {
    public static void main(String args[]) {
        Apple apple = new Apple();
        apple.showPrice();
    }
}

 위 코드에서 9 번째 줄의 인쇄 된 값은 5입니다.

여덟 번째 줄이 주석 처리 된 경우 인쇄 된 값은 10입니다.

여섯 번째 줄을 계속 주석 처리하면 인쇄 된 값은 20입니다.

두 번째 줄이 주석 처리되면 시스템이 오류를보고합니다.

 

기본적으로 가장 가까운 값이 인쇄됩니다.

위의 상황에서이 클래스의 멤버 변수를 호출하려면 this 키워드를 사용해야합니다.

부모 클래스의 멤버 변수를 호출하려면 super 키워드를 사용해야합니다.

2. Java 상속 관계에서 멤버 메소드 사용의 특징 :

메서드 재 작성 :

상위 클래스와 동일한 메소드가 하위 클래스에 나타날 때 (서브 클래스 메소드의 권한 수정자가 상위 클래스 메소드의 권한 수정 자보다 작지 않고 반환 값 유형, 메소드 이름 및 매개 변수 목록이 동일 함) 덮어 쓰기 덮어 쓰기 또는 복사라고도하는 작업이 발생합니다.

부모 클래스의 private 메서드는 하위 클래스에서 볼 수 없으므로 부모 클래스의 private 메서드를 다시 작성할 방법이 없습니다.

메모 다시 작성 :

하위 클래스 메서드의 권한 수정자는 상위 클래스 메서드의 권한 수정 자보다 작지 않습니다.

정적은 정적 만 재정의 할 수 있습니다.

적용되는 사용 시나리오 :

하위 클래스에 상위 클래스의 기능이 필요하고 주 함수 하위 클래스에 고유 한 내용이있는 경우 상위 클래스의 메서드를 덮어 쓸 수 있습니다.

이러한 방식으로 부모 클래스의 두 기능이 모두 상속되고 하위 클래스의 고유 한 내용이 정의됩니다.

메서드 다시 쓰기와 오버로딩의 차이점은 무엇입니까 ?

메소드 재 작성은 서브 클래스 메소드가 상위 메소드와 정확히 일치 할 때 사용되며 권한 한정자를 제외하고 반환 값 유형, 메소드 이름, 매개 변수 목록이 동일합니다.

오버로딩은 동일한 클래스에있는 각 메서드의 메서드 이름이 같고 매개 변수 목록이 다를 때 사용됩니다 (반환 값 형식과 관련이 없음).

하위 부모 클래스에서 생성 방법의 사용 :

1. 하위 클래스의 초기화 과정에서 먼저 돌아가서 부모 클래스의 초기화 작업을 실행합니다.

기본적으로 서브 클래스의 생성 메소드에 super ()가 있기 때문입니다.

2. 부모 클래스에 매개 변수없는 생성 방법이없는 경우 :

  • super를 사용하여 부모 클래스의 매개 변수화 된 구조를 호출합니다. (권장 방법)
  • 이를 사용하여 다른 구조를 호출하십시오.

정적 코드 블록, 구성 코드 블록 및 구성 방법의 실행 순서 :

부모 클래스 정적 코드 블록 → 하위 클래스 정적 코드 블록 → 부모 클래스 구성 코드 블록 → 부모 클래스 구성 방법 → 자식 클래스 구성 코드 블록 → 자식 클래스 구성 방법

추천

출처blog.csdn.net/qq_43191910/article/details/114780075