자바 오버로딩, 상속 질문

자바 오버로딩, 상속 질문

작성일 2021.10.26댓글 1건
    게시물 수정 , 삭제는 로그인 필요





1. 위 문제에서 생성자 오버로딩은 인자의 순서까지도 고려해 생성이 되었는데 메소드 오버로딩은 메소드 인자가 같으면 더 이상 만들어지지않나요?



2. 이 문제의 실행 결과가 왜 2인지 그 과정도 궁금합니다.


#자바 오버로딩 오버라이딩 차이 #자바 오버로딩 오버라이딩 #자바 오버로딩 예제 #자바 오버로딩 문제 #자바 오버로딩 리턴타입 #자바 오버로딩 조건 #자바 오버로딩 매개변수 #자바 오버로딩 선언 #자바 오버로딩 다형성 #자바 오버로딩 생성자

profile_image 익명 작성일 -

안녕하세요.

1번.

오버로딩은 동일한 메소드 이름으로 여러개의 메소드를 정의하는것을 이야기 하는데요,

인자의 타입이나, 갯수, 순서들이 달라야 합니다. 만약 타입과 갯수, 순서가 동일하다면 메소드를 만들수 없지요.

동일하면 같은 메소드 정의로 오류가 발생합니다.

지문코드에서도 static이 붙고 안붙고 차이만 있지 메소드 자체는 서로 동일하기 때문에 오류가 발생합니다.

그리고 변수명은 영향이 없습니다. double a 가 double b 로 변경되었다고 해서 다른 인자가 아닙니다.

하나의 double 타입 으로 보는것이지 변수이름으로 보는것이 아니기 때문에 double a 나 double b나 동일합니다.

2번.

XY a = new XY(); 문장부터 살펴보면,

XY()클래스 객체를 생성하기 위해 XY() 생성자가 호출되겠지요.

XY(){

num++;

}

생성자가 위와 같이 되어있는데, 생성자 첫줄에는 생성자 호출이 오게 되어있는데, 만약 생성자 호출이 없는경우

컴파일러는 자동으로 첫줄에 super();문장을 추가하게 됩니다.

따라서 super(); 문장이 먼저 실행된후 num++;가 수행됩니다.

super();문장은 조상의 매개변수 없는 생성자 호출을 의미하지요.

따라서 X클래스의 X() 생성자가 호출됩니다.

여기에서 num++; 문장을 만나 num이 0에서 1로 증가합니다.

그리고 X()생성자 실행을 완료하고, 호출이전 생성자로 돌아가서,

XY()메소드에 있는 num++;를 실행하여 num=2가 되고, 생성자를 종료하게 됩니다.

최종적으로 num이 2가 되게 됩니다.

참고하세요.

객체지향, 상속, 오버로딩, 오버라이딩...

... 객체지향, 상속, 오버로딩, 오버라이딩 등등요. 자바언어는 C++언어의 장점을 가져와서 개발되었으며, 객체지향, 상속, 오버로딩, 오버라이딩 등 C++언어의 많은 기능을...

자바 오버로딩 질문

... 오버로딩이 충돌할 수 있나요? (int, double) 인 메소드, (double, int), 인 메소드가 있을 때 (4,3)이 들어오면 어떤 함수를 호출하나요? 2. 오버로딩은 메서드 오버로딩만...

자바 오버로딩 질문

이 경우 모두 오버로딩 가능한가요? 간단한 설명도 부탁드립니다! 모두 가능합니다. 인수 리스트가 다르면 오버로드 가능합니다. 지문은 (int, int) 1. (int, int...

자바 오버로딩 질문

안녕하세요 자바 공부중인 학생입니다 자바 오버로딩에 대해서 예제를 풀어보고 있는데, 결과가 아래처럼 삼각형은 잘나오는데 원은...

자바 오버로딩오버라이딩 질문

오버로딩오버라이딩이 동적바인딩인지 정적바인딩인지를 알고싶고... 그러나 런타임시에 a의 변수에 A를 상속받은 B클래스의 인스턴스를...

자바 생성자 오버로딩 규칙 질문이요!

A클래스의 필드가 다음과 같이 선언되어 있을 때 생성자 오버로딩 규칙을 만족하는 생성자를 모두 생성하세요. public class A{ string str1; string str2; double num1;...

자바 오버로딩 질문

... System.out.println("전체 요금 합계 : "+sum); } } 이라는 식이있는데 이걸 계산만 객체로하고 결과만 가져오게 오버로딩 해보라는데...