티스토리 뷰
1. super()
- 부모 생성자를 호출한다 즉, 상속받은 부모 생성자를 호출하여 사용할 수 있다
- 인수를 넣으면 해당 인자로 부모 생성자가 초기화 된다
class Parent {
int a;
Parent() { a = 10; }
Parent(int n) { a = n; }
}
class Child extends Parent {
int b;
Child() {
① //super(40);
b = 20;
}
void display() {
System.out.println(a);
System.out.println(b);
}
}
public class Inheritance04 {
public static void main(String[] args) {
Child ch = new Child();
ch.display();
}
}
① 주석이 있는 경우 부모의 기본 생성자를 호출하게 되어 결과는 10,20이 나오게된다
① 주석을 제거한 경우 부모의 생성자 중 파라미터가 있는 생성자가 호출되고 인수값으로 값이 초기화되어 결과는 40,20이 나오게 된다
2. this()
- 같은 클래스의 다른 생성자를 부를 때 사용되면 생성자 내부에서만 사용 가능하다
- this()에서 받은 인수를 보고 같은 클래스의 생성자들 중 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출하게 된다
public class NotFoundException extends ResponseStatusException {
public NotFoundException(){
this("NotFoundException");
}
public NotFoundException(String message) {
super(HttpStatus.NOT_FOUND,message);
}
}
'Java' 카테고리의 다른 글
[Java] - JVM의 구성요소와 메모리 구조 (0) | 2020.11.15 |
---|---|
[Java 8] - 함수형 인터페이스와 메소드 참조 (0) | 2020.11.14 |
[Java] - 배열(Array)과 리스트(List) 에 대하여 (0) | 2020.09.03 |
[Java] - War, Jar의 차이 (0) | 2020.08.23 |
[Java 8] - Stream Api (0) | 2020.08.08 |