2008년 10월 11일
Java Programming [Chapter5] 상속
1.상속이란 ?
- 상속은 객체지향 언어의 장점인 모듈의 재사용과 코드의 간결성을 제공하는 중요한 특성.
앞서 상속의 개념을 설명하였고 이는 일반적인 클래스로부터 상속된 새로운 클래스를 쉽게 생성할수 있는 것이다.
* 상속을 할때 의 주요 용어 extends 를 기억하자
class A { //A클래스 생성
int aa = 1;
}
class B extends A{ // B클래스 생성과 함께 A를 상속받는다.
int bb = 2;
}
class C extends B{ // C클래스 생성과 함께 B를 상속받고 B에서 상속받은 A또한 상속받음.
int cc = 3;
}
class Dabc{
public static void main(String args[]){
C t = new c(); // C 클래스의 객체를 생성
System.out.println("t객체의 객체속성변수 aa의 값은 " + t.aa); // 출력 1
System.out.println("t객체의 객체속성변수 bb의 값은 " + t.bb); // 출력 2
System.out.println("t객체의 객체속성변수 cc의 값은 " + t.cc); // 출력 3
}
}
C클래스의 객체를 생성하엿지만 상속을 받았기 떄문에 C클래스로 부터 생성된 객체라도 A클래스와 B클래스의 값등을 활용
할수 있다.
2. 예약어 super
- 예약어 super는 두 가지 형태로 사용된다. 첫쨰는 하위 클래스에 의해 가려진 상위 클래스의 멤버변수나 메소드에 접근할 때
사용한다. 둘째는 상위 클래스의 생성자를 호출하기 위해 사용된다.
사용 형식.
super.객체변수
super.메소드이름(매개변수)
예제코드
class D1{ //클래스 D1 의 생성
int x = 1000; // 변수 생성
void display(){ // 메소드 생성.
System.out.println("상위클래스의 메소드입니다.") ;
}
}
class D2 extends D1{ //클래스 D2의 생성 상속으로 D1클래스를 받고잇다.
int x = 2000; //변수생성
void display(){ // 메소드생성
System.out.println("하위클래스의 메소드입니다.") ;
}
void write(){ // 메소드 생성
this.display(); //this 를 사용하엿음으로 클래스 D2의 메소드를 사용한다.
display(); //클래스 D2 내에서 사용된 메소드이므로 클래스 D2의 display메소드 사용.
super.display(); // 상위 클래스의 메소드 사용
System.out.println("D2 클래스의 객체 x 값 = " + x); //D2 클래스 객체값 출력
System.out.println("D1 클래스의 객체 x 값 = " + super. x); // 상위 클래스인 D1 객체값 출력
}
}
class Main{
public static void main(String args[]){
D2 d = new D2(); //D2의 객체생성
d.write(); //write 메소드 사용
}
}
사실 위 코드에서 메인 클래스 부분이 살짝이해가 안갓지만 super 사용은 이해가한번에 됫다.
# by | 2008/10/11 22:25 | 트랙백 | 덧글(2)



