반응형
상속이란 ?
자식 클래스는 부모 클래스에서 정의된 변수나 메소드를 자기 자신 것처럼 사용할 수 있다.
상속 형태
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.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 |