반응형

상속이란 ?

 

자식 클래스는 부모 클래스에서 정의된 변수나 메소드를 자기 자신 것처럼 사용할 수 있다.

 

상속 형태

class 부모클래스명 {

        변수;

        메소드;

}

 

clasee 자식클래스명 extends 부모클래스명 {

        실행할 문장; 

}

 

오버라이딩

- 부모로부터 상속받은 메소드를 자식 클래스에서 자기 자신 클래스의 기능에 맞도록 재정의하는 기능

 

바로 예시로 들어가보겠습니다

동일 패키지에 존재한다는 가정하에 클래스 파일을 분리해서 만들었습니다.

 

부모클래스

GrandF.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class GrandF {
 
    public String name = "홍길동할아버지";
    protected String gahun = "열심히하자";
 
    public GrandF() {
        System.out.println("할아버지 생성자입니다");
    }
 
    public void say() {
        System.out.println("할아버지가 말씀하셨다.");
    }
 
}
 
 

3-4번 줄 : name과 gahun이라는 변수명과 변수 값을 정해줍니다.

6-7번 줄 : 생성자를 한번 더 복습해보았습니다.

10-11번 줄 : say라는 메소드를 생성해주었습니다.

 

자식클래스

gajok.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Fatherr extends GrandF {
 
    public String gabo = "지역변수"// 은닉화
 
    public Fatherr() {
        super(); // 부모 생성자 호출. 아규먼트에의해 선택적으로 호출
     
    }
 
    @Override
    public void say() {
        // TODO Auto-generated method stub
        System.out.println("자바 공부를 합시다");
    }
 
    public void showData() {
 
        String gabo = "멤버변수";
 
        System.out.println("gabo : " + gabo); // 멤버변수
        System.out.println("gabo : " + this.gabo); // 지역변수
        System.out.println("gabo : " + super.name);
 
    }
 
    public static void main(String[] args) {
        Fatherr fa1 = new Fatherr();
        fa1.say();
        fa1.showData();
 
    }
 
}
 
 

5번 줄 : GrandF 클래스를 gr이라는 새로운 객체로 생성해준다.

6번 줄 : super()는 부모 클래스의 생성자를 호출하기때문에 "할아버지 생성자"를 호출합니다.

10번 줄 : 기존  부모클래스에서 "할아버지가 말씀하셨다"를 호출해야하지만 자식클래스에서 상속을 받았기 때문에 "자바 공부를 합시다"가 출력됩니다.

16번 줄 : 변수별로 어떤 차이점을 가지는지 보여주기위해 작성하였습니다.

28번 줄 : 오버라이딩한 내용을 출력합니다.

 

 

 

반응형

'JAVA > JAVA' 카테고리의 다른 글

8 - 생성자(Constructor)  (0) 2020.03.04
7 - 메소드  (0) 2020.03.04
6 - 클래스 ( class )  (0) 2020.03.03
5 - 배열(Arrary)  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03

+ Recent posts