2013-09-04 3 views
-4

코드 중 하나를 이해하는 데 질문이 있습니다. 누군가가 나를 이해하도록 도울 수 있다면 정말 감사 할 것입니다.호출하는 메소드, 코드 이해

class C { 
void process1(char ch) { 
     System.out.println ("Inside process1 in C " + ch);  } 
void process2(char ch) { 
    System.out.println ("Inside process2 in C " + ch);  } 
void process3(char ch) { 
    System.out.println ("Inside process3 in C " + ch); 
    process2(ch); }            
} 

확장자의 다음 선언 뒤에 : C의 선언하면 어떻게됩니까

Here is the question in Google Books

방법은 호출

class ExtC extends C { 
    void processl(int n) { 
    System.out.println ("Inside process1 in ExtC " + n); } 
void process2(char ch) { 
    System.out.println ("Inside process2 in ExtC " + ch); } 
void process4(int n) { 
    System.out.println ("Inside process4 in ExtC " + n); } 
} 

경우 세 가지의 선언 객체

ExtC object1 = new ExtC(); 
    C object2 = new ExtC(), object3 = new ExtC(); 

이러한 문 뒤에 : 처음 EXTC 1000 과정 (1) 내부 1을 인쇄 할 것을

object1.process1(1000); 
object1.process4(2000); 
object2.process1(3000); 
object2.process4(4000); 
object3.process1(‘P'); 
object3.process2('Q'); 
object3.process3('R'); 

질문 번호 3.

내가 실현 그런 다음이 프로세스 내에서 2를 인쇄합니다 ExtC 2000의 4 인치

하지만 그 다음은 무엇입니까? object2와 object3에서는 어떻게 될까요? Extend 또는 Class C를보아야합니까?

+8

여기에 정확한 질문을 게시하려면 링크를 제공하는 것과 반대하십시오. – arshajii

+0

http://www.javatutorialhub.com/java-class-inheritance.html –

+0

매우 기본적인 자바 지식을 가진 사람이면 누구나이 질문에 답변 할 수 있습니다. 그러나 코드 예제를 실행하려고하면 Java 전문가가 할 수있는 것보다 더 많은 것을 가르쳐 줄 것을 권장합니다. 그래도 대답이 필요하면 arshajii가 제안한대로 질문을 올리십시오. – dev

답변

0

당신은 우리가 방법을 호출 할 때,이 컴파일 시간에 개체 형식으로 표시 클래스의 인스턴스를 생성 refference 유형 에 의해 실행 시간에 표시된 클래스의 방법을 확인하고이 방법을 확인 알고 . 여기에있는 모든 3 개의 객체는 ExtC 클래스입니다 .ExtC 클래스는 실제로 5 개의 인스턴스 메소드가 있습니다. process1 (char ch), process2 (char ch), process3 (char ch), process1 (int n), process4 (int n) : 3 수퍼 클래스에서. process2 (char ch)가 여기에서 오버라이드되었습니다.

개체 유형을 고려하십시오. & 개체 유형이 모두 ExtC입니다. 따라서 거기에서 5 가지 방법을 모두 호출 할 수 있습니다. 우리는 두 클래스 모두에 포함 된 메소드만을 호출 할 수 있습니다. 즉, 'c'& 객체 유형 'ExtC'입니다. 메소드 process1 (int n) & process4 (int n) 호출 할 수 없습니다. 오브젝트 3을 고려하면 Object 클래스 (Refferece로 표시) & ExtC 클래스에 포함 된 메소드 만 호출 할 수 있습니다.이 중 5 개는 호출 할 수 없습니다. 이제 직접 답을 다시 시도하십시오.