2016-12-11 4 views
0

인터넷을 검색하여 기본 클래스 및 파생 클래스의 개념을 이해했습니다. 파생 클래스에 기본 클래스의 모든 변수 및 메서드가 포함되어 있는지 또는 파생 클래스가 기본 클래스 변수 및 메서드를 참조하는지에 대한 질문이 있습니다.Java 기본 클래스 및 파생 클래스 이해

클래스를 기본 클래스에서 확장하고 파생 클래스의 개체를 만들 때 파생 클래스 개체가 기본 클래스 개체와 자체 변수 및 메서드가 포함 된 컨테이너 역할을 수행합니까? 기본 클래스 객체가 인라인으로 복사됩니까? 수퍼 클래스 메소드 super.setValues ​​(10,20)를 호출 할 때 Super 클래스를 호출하고 값을 설정하고이 값을 인라인으로 복사합니까?

코드의 내부 동작에 대해 혼란스러워합니까? 누군가 제발 설명해 줄 수 있니? 나는 당신이 정적으로 입력 된 언어에서 파생 클래스를 인스턴스화 할 때, 가장 낮은 수준으로 가고, 그것을 알고있는 것처럼

감사 가우리

+0

기반 및 파생물은 C#에서보다 일반적으로 사용되지만 자바는 부모 클래스 및 하위 클래스와 비슷합니다. –

+2

더 나은 책 읽기 – GurV

답변

0

, 그것은 자식 클래스에서 메모리에 구분 된 부모 클래스와 메모리에 저장됩니다 . 인스턴스를 액세스 할 때 인스턴스를 검색하는 유형에 따라 인스턴스의 전체 메모리 영역 또는 메모리의 기본 부분 영역과 동일한 메모리 영역에 액세스합니다. 그러나 기본 클래스 메서드는 파생 클래스에서 재정의되는 경우 파생 클래스를 가리 킵니다.

좋은 답변이 아닙니다. OOP 환경에서 작업하는 동안 내 기억에 그대로 유지 된 것입니다.

어쨌든 당신은 내가 할 수있는 것보다 OOP를 명확히하는 데 도움이되는 많은 주제가 있습니다.

0

클래스를 확장 할 때 파생 클래스는 실제로 기본 클래스에서 메서드를 상속합니다. 파생 클래스 개체에는 파생 클래스 및 수퍼 클래스의 모든 메서드와 변수가 포함되어 있습니다. 그러나 메서드가 재정의 된 경우 파생 클래스 개체는 재정의 된 메서드. 우선 파생 클래스에 우선 순위가 있음을 의미합니다. 컴파일러가 파생 클래스에서 해당 메서드를 찾지 못하면 기본 클래스를 검사합니다.

super.setValues ​​(10,20)는 super 키워드를 사용했기 때문에 super class 메소드를 호출합니다. super 키워드없이 사용하면 파생 클래스를 먼저 체크인합니다.

관련 문제