super()는 자식 생성자에서 부모생성자를 호출시키는 함수이다.
그러나 자식 클래스 생성자를 사용할 때, 자동으로 부모 생성자도 호출이 된다.
그럼 왜 super라는 호출 함수를 알아야 하는 것일까?
그건 다음과 같은 이유 때문이다.
public class ex_Parent {
public ex_Parent(String str)
{
System.out.println(str + "부모생성자 입니당");
}
public int Sum (int a, int b)
{
int result = 0;
result = a+b;
return result;
}
}
위 부모 클래스를 보면 생성자에 문자열 변수를 갖고 있다.
public class ex_Child extends ex_Parent {
public ex_Child()
{
System.out.println("기본 생성자 입니다");
}
public void Cal()
{
int a = 10;
int b = 12;
System.out.printf("%d", Sum(a, b));
}
}
그러나 자식 함수의 생성자는 문자열 인자를 갖지 않는다.
이럴 경우 오류가 발생하게 된다.
이럴 때 필요한 것이 super() 호출 함수이다.
public ex_Child()
{
super("오류나지 마!! ");
System.out.println("기본 생성자 입니다");
}
위와 같이 super 함수에 대신 문자열을 넣어주어 호출해준다면 오류가 나지 않는다.
'자바 공부 > [자바] 기본 공부' 카테고리의 다른 글
| [자바 공부 3일차] Object와 오버라이딩 (0) | 2024.11.08 |
|---|---|
| [자바 공부 3일차] 인터페이스 (0) | 2024.11.08 |
| [자바 공부 3일차] 상속과 추상클래스 (0) | 2024.11.08 |
| [자바공부 2일차] Scanner (0) | 2024.11.07 |
| [자바 공부 1일차] 출력문과 입력문 (0) | 2024.11.06 |