하위 클래스의 인스턴스에서 수퍼 클래스의 속성에 액세스

흡입기
class Person {
    public String name;
    String id;

    public Person() {
        System.out.println("Parent default");
        name = id = "";
    }

    public Person(String name, String id) {
        System.out.println("Parent parameter");
        this.name = name;
        this.id = id;
    }

    void show() {
        System.out.println(this.name + "\n" + this.id);
    }
}

class Student extends Person {

    Student() {}

    Student(String a, String b) {
        super(a, b);
    }
}

class Main {
    public static void main(String args[]) {
        Person p = new Person("A", "AA");
        Student s = new Student("b", "BB");
        s.show();
    }
}

저는 자바를 처음 접했기 때문에 몇 가지 기본적인 사항을 이해하고 싶었지만 실패했습니다. 부모 클래스에서 상속하면 자식 클래스에서 부모 클래스의 복사본을 얻습니다. 내가 부모 클래스 참조 따라서이의 경우 코드 ' show(메인 클래스에서) 방법을, 이것은 부모 클래스 표시하도록되어' nameid이전에 설정되었다.

그러나 그것은 보이지 않습니다. 그래서 제 이해에 확실히 문제가 있습니다. 하위 클래스에서 상위 클래스의 사본에 액세스하려면 어떻게해야합니까? super자식 생성자 메서드를 사용 합니까? 간단히 말해 상속의 기본을 알고 싶습니다.

nbrooks

다음 진술을 고려하십시오.

Person p = new Person("A", "AA");

이것은 Person. 이름은 "A"이고 ID는 "AA"입니다.

이제 다음 진술을 고려하십시오.

Student s = new Student("b", "BB");

이것은 새로운 Student. 또한 새로운 Person . 어떻게 가능합니까? 그럼 a는 Student 이다Person . 그것이 상속이 의미하는 바입니다. 유형이 다른 유형을 확장 할 때 이는 유형 간의 "is a" 관계를 정의하는 것입니다 .

개는 동물이기 때문에 개는 동물을 확장합니다. Car는 Vehicle이기 때문에 Car는 Vehicle을 확장합니다.

그래서 당신은 새로운 만들 때 Student, 당신은을 만드는 Person. Student extends Person, 그래서 a StudentPerson. 당연히 추가 할 수 있습니다.

super키워드는 자식 클래스에서 부모 클래스의 메소드와 필드를 참조하는 데 사용됩니다. 당신에 Student생성자

Student(String a, String b) {
    super(a, b);
}

실제로를 호출하여 Person생성자를 간접적으로 호출하고 super(a, b)있습니다. 그래서 이름 과 ID를 new Student("b", "BB")생성합니다 . A가 될 일이 아니라.Person"b""BB"PersonStudent

사람 "a"과 사람 사이에는 실제적인 관계가 없습니다 "b"(아마도 먼 사촌 일 수도 있지만). 당신 "a"이 그녀의 이름 을 물어 보면 그녀는 대답 할 것 "a"입니다. 사람 "b"에게 그의 이름 을 물어 보면 그는 대답 할 것 "b"입니다. 한 사람이 다른 사람의 이름으로 답장하는 것은 조금 이상 할 것이므로 개인은 완전히 다른 사람으로 취급됩니다.


참조 : Java 상속 문서

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Swift의 슈퍼 클래스에서 하위 클래스 속성에 액세스

분류에서Dev

하위 클래스에서 수퍼 클래스의 속성 설정자에 액세스

분류에서Dev

포인터 벡터에서 C ++의 슈퍼 클래스에 대한 하위 클래스 변수에 액세스

분류에서Dev

하위 클래스의 개인 필드는 수퍼 클래스에서 액세스 할 수 있습니다.

분류에서Dev

인스턴스 변수에서 클래스의 인스턴스에 액세스하는 방법

분류에서Dev

인스턴스 변수에서 클래스의 인스턴스에 액세스하는 방법

분류에서Dev

수퍼 클래스의 인스턴스를 사용하여 서브 클래스의 재정의 된 변수에 액세스하는 방법

분류에서Dev

수퍼 클래스에서 하위 클래스의 모든 인스턴스 추적

분류에서Dev

서브 클래스 객체에 대한 수퍼 클래스 참조 변수는 최상위의 대신에 서브 클래스의 속성을 액세스

분류에서Dev

슈퍼 클래스 비추 상 메서드를 재정의합니다. 수퍼 클래스 (?)의 개인 속성에 액세스하기

분류에서Dev

하위 클래스의 인스턴스에서 typescript의 정적 속성에 어떻게 액세스합니까?

분류에서Dev

다중 스레드에서 액세스하는 Singleton 클래스의 인스턴스 변수

분류에서Dev

함수 범위에서 클래스 인스턴스에 액세스

분류에서Dev

C #의 하위 폼에서 클래스 인스턴스의 함수 호출

분류에서Dev

Java의 파생 클래스에서 수퍼 클래스에 중첩 된 개인 내부 클래스에 액세스하는 방법이 있습니까?

분류에서Dev

콜백 익명 함수에서 클래스의 인스턴스에 액세스

분류에서Dev

Python의 하위 클래스에서 수퍼 클래스 변수 변경

분류에서Dev

Python의 하위 클래스에서 수퍼 클래스 변수 변경

분류에서Dev

수퍼 클래스에서 서브 클래스의 클래스 인스턴스 변수 초기화

분류에서Dev

수퍼 클래스의 한 인스턴스를 상속하는 여러 하위 클래스

분류에서Dev

슈퍼 클래스의 현재 인스턴스가 슈퍼 클래스 내에서 하위 클래스인지 확인하는 올바른 방법

분류에서Dev

신속하게 다른 클래스의 변수에 액세스

분류에서Dev

상속 : 하위 클래스의 수퍼 클래스의 숨겨진 변수

분류에서Dev

수퍼 클래스의 속성을 상속하기 위해 Python 클래스를 서브 클래 싱

분류에서Dev

setter를 사용하지 않고 하위 클래스에서 수퍼 클래스의 개인 필드에 액세스하는 방법은 무엇입니까?

분류에서Dev

상위 클래스의 속성에 액세스 할 수 있습니다.

분류에서Dev

파생 클래스 내에서 기본 클래스의 인스턴스 변수에 액세스하는 더 좋은 방법은 무엇입니까?

분류에서Dev

수퍼 클래스 초기화 중에 정의 된 속성에 액세스하는 방법

분류에서Dev

클래스 메서드를 호출하는 클래스의 인스턴스 변수에 액세스하려고합니다.

Related 관련 기사

  1. 1

    Swift의 슈퍼 클래스에서 하위 클래스 속성에 액세스

  2. 2

    하위 클래스에서 수퍼 클래스의 속성 설정자에 액세스

  3. 3

    포인터 벡터에서 C ++의 슈퍼 클래스에 대한 하위 클래스 변수에 액세스

  4. 4

    하위 클래스의 개인 필드는 수퍼 클래스에서 액세스 할 수 있습니다.

  5. 5

    인스턴스 변수에서 클래스의 인스턴스에 액세스하는 방법

  6. 6

    인스턴스 변수에서 클래스의 인스턴스에 액세스하는 방법

  7. 7

    수퍼 클래스의 인스턴스를 사용하여 서브 클래스의 재정의 된 변수에 액세스하는 방법

  8. 8

    수퍼 클래스에서 하위 클래스의 모든 인스턴스 추적

  9. 9

    서브 클래스 객체에 대한 수퍼 클래스 참조 변수는 최상위의 대신에 서브 클래스의 속성을 액세스

  10. 10

    슈퍼 클래스 비추 상 메서드를 재정의합니다. 수퍼 클래스 (?)의 개인 속성에 액세스하기

  11. 11

    하위 클래스의 인스턴스에서 typescript의 정적 속성에 어떻게 액세스합니까?

  12. 12

    다중 스레드에서 액세스하는 Singleton 클래스의 인스턴스 변수

  13. 13

    함수 범위에서 클래스 인스턴스에 액세스

  14. 14

    C #의 하위 폼에서 클래스 인스턴스의 함수 호출

  15. 15

    Java의 파생 클래스에서 수퍼 클래스에 중첩 된 개인 내부 클래스에 액세스하는 방법이 있습니까?

  16. 16

    콜백 익명 함수에서 클래스의 인스턴스에 액세스

  17. 17

    Python의 하위 클래스에서 수퍼 클래스 변수 변경

  18. 18

    Python의 하위 클래스에서 수퍼 클래스 변수 변경

  19. 19

    수퍼 클래스에서 서브 클래스의 클래스 인스턴스 변수 초기화

  20. 20

    수퍼 클래스의 한 인스턴스를 상속하는 여러 하위 클래스

  21. 21

    슈퍼 클래스의 현재 인스턴스가 슈퍼 클래스 내에서 하위 클래스인지 확인하는 올바른 방법

  22. 22

    신속하게 다른 클래스의 변수에 액세스

  23. 23

    상속 : 하위 클래스의 수퍼 클래스의 숨겨진 변수

  24. 24

    수퍼 클래스의 속성을 상속하기 위해 Python 클래스를 서브 클래 싱

  25. 25

    setter를 사용하지 않고 하위 클래스에서 수퍼 클래스의 개인 필드에 액세스하는 방법은 무엇입니까?

  26. 26

    상위 클래스의 속성에 액세스 할 수 있습니다.

  27. 27

    파생 클래스 내에서 기본 클래스의 인스턴스 변수에 액세스하는 더 좋은 방법은 무엇입니까?

  28. 28

    수퍼 클래스 초기화 중에 정의 된 속성에 액세스하는 방법

  29. 29

    클래스 메서드를 호출하는 클래스의 인스턴스 변수에 액세스하려고합니다.

뜨겁다태그

보관