-
superProgramming/JAVA 2020. 6. 12. 23:38
조상클래스를 상속받은 자손클래스가 멤버 변수와 지역 변수를, 또는 생성자를 구분하기 위해 사용하는 구분자이다.
단, static 메서드는 클래스 메서드로 사용하지 못 하고, 인스턴스 메서드에서는 사용할 수 있다.
상속받은 자손클래스는 조상클래스와 한몸이 되는 것이나 마찬가지, 빙의라고 생각하자.
super 의 기본 형태
생성자에서도 가능하다.
이런식으로 생성자도 오버로딩이 가능하다.
// 조상 클래스의 위에도 조상이 있다 거슬러 올라가다보면 최상위에 오브젝트 클래스가있는데 거기를 제외한 모든 생성자의 첫줄에는 생성자 this() 또는 super()가 호출되어져야한다. 그렇지않으면 자동적으로 super()을 삽입한다.
ㄴ생성자의 기능과 같다.(super() 또한 조상클래스의 초기화를 해주기위한 생성자일 뿐이다.)
ㄴ생성자 단원에서 배웠던 그대로 잘 응용해서 풀어내주길 바란다 규영아!
음 그냥 슈퍼생성자 예 코드를 한번 작성해보자.
class point{
int x;
int y;
point(int x, int y){<- 제일 중요한 건 여기에 object(); 이 생성자가 암묵적으로 컴파일러가 추가한다는거 기억하자!
this.x=x;
this.y=y;
}
}
class point3d extends point {
int z;
point3d(){
this(0,0,0);
}
point3d(int x, int y, int z){
super(x,y);
his.z=z;
}
}그리고 저 슈퍼는 본인(자손클래스가 조상클래스를 상속받고 자신의 생성자를 호출할 때 조상클래스 멤버들을 초기화 해줘야하기 때문에 [이거는 상속받았으니 필히 쓴다는 전제로] 첫줄에 this호출 처럼 super도 호출해서 초기화해준다.
this를 맛보고와서 그런가 super는 좀 쉽다.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ귀엽네 'Programming > JAVA' 카테고리의 다른 글
형변환(메모) (0) 2020.06.16 제어자 (0) 2020.06.13 오버라이딩(overriding) (0) 2020.06.09 상속(inheritance) - 중간 저장 (0) 2020.06.08 오버로딩 (overloading) (0) 2020.05.28