Super,Super() 조상클래스 생성자 만들기
::::특별한 Java Story 2013. 6. 7. 01:37 |/*내용을 복사 한 후 이클립스에서
ctrl + shift + F를 눌러주세요!!*/
//P.241~246 super,super() 조상클래스 생성자
//앞전까지 상속하고,오버라이딩 하는것까지 정리했는데..오버라이딩의 마지막 super 를 한번 보겠어~
//생각보다 내용은 쉽다! 역시 이런건 딱딱 지적하면서 정리하는게 최고당~!^
//책은 예문을 쫌 많이 쪼개 놨는데, 난 한꺼번에 적어서 이것저것 다 정리해보겠어!
//GoGo~~!!
package JavaTest;
class Point{ //부모클래스
int x, y; //Point 클래스에 인스턴스 변수 x,y 를 선언~
Point(int x,int y){ //매개변수 2개를 갖는 생성자를 만들었음
this.x = x;
this.y = y;
}
String getLocation(){ //메서드도 하나 만들어줬엉~홍홍!
return x+","+y;
}
}
class Point3D extends Point{ //자~다음은 Point 를 상속받는 Point3D 자식클래스~~
int z; //z 인스턴스 변수 하나 추가해주고~
Point3D(){ //매개변수 없는 생성자를 하나 만들어 봤어~
this(100,200,300); //빨간줄 뜨지? 3개의 매개변수를 갖는 생성자를 호출하는거쥐~근데
} //3개짜리 생성자를 아직 만들지 않아서 빨갱이가 뜬다~~밑에 만들어보자
Point3D(int x,int y,int z){
super(x,y); //★★★ 드디어~ 납셨다! super() 이놈은 바로 생성자 안에서 쓰이는 놈이다
this.z = z; // 부모클래스에 있는 Point(int x,int y) 생성자를 상속 받아서 쓸려면 super를
} //사용해야 한다는 거지요~~(앞전에 생성자는 상속 안된다고 했엉~기억하지?
// 생성자에서 상속을 받으려면 super를 사용해야한다는것 기억하자!!외워!!임뫄!(-_-)ㅗ
//Tip : super 와 super() 는 사용용도가 엄연히 다르당! 멍충아! 맨밑에다 정리할께!
String getLocation(){
return super.getLocation()+","+z; //★★★ 자 여기도! 부모 클래스의 메서드를 새롭게 정의하는것도
} // super를 사용하여 명확히 구분 짖는것도 좋다는~
//밑에 주석 처리한것처럼 사용하여도 상관은 없다..같은 내용이니~
/*String getLocation(){ //단, 여기서는 super의 사용 용도에 대하여 정리해봤엉~
return x+","+y+","+z; //문) 이렇게 **부모클래스의 메서드**를 새롭게 정의하는걸 머라고 하나요??
}*/ //정답) 오X라X딩~~
}
public class SuperTest {
public static void main(String[] args) {
//그럼 잘 되는지 출력해보자!꾸낭!ㅋ
Point3D p3 = new Point3D(); //인스턴스화 시키고,
System.out.println(p3.x); //출력!
System.out.println(p3.y);
System.out.println(p3.z);
System.out.println(p3.getLocation()); //메서드도 잘 출력되네욤!
}
}
// ① super 는 조상클래스로 부터 받은 멤버변수를 참조할때 사용하는 변수!
// ② super() 는 조상클래스의 생성자를 호출하는데 사용하는 생성자! 까오~ 이거 !!외워!이해해!! ㅋ
// 다음주에 물어봐서 모르면 뒤짐!
'::::특별한 Java Story' 카테고리의 다른 글
접근 제어자(Access modifier) / 캡슐화(encapsulation) (0) | 2013.06.09 |
---|---|
제어자,static,final (0) | 2013.06.08 |
오버라이딩(Overriding) (0) | 2013.06.06 |
단일상속(single inheritance) (0) | 2013.06.06 |
클래스간의 관계(포함관계) has-a (0) | 2013.06.06 |