본문으로 바로가기

자바에서 상속이란 무엇일까?

category JAVA 6년 전
반응형

부모 클래스에서 생성된 변수 메서드 등등 모든 것을 자식클래스가 상속받아 공유하고 확장하는 개념이다.

 

1. 코드를 재활용(공유) 함으로써 중복된 코드를 막을 수 있다.

2. 클래스 수정에 대해 유연성 증가 및 시간절약

 

자식클래스가 부모클래스의 메서드를 자신의 입맛으로 바꾸서 수정하는 것을 쉽게 오버라이딩 이라고 합니다.

한마디로 부모클래스의 메서드를 자식클래스가 재정의 하여 사용한다고 생각하시면 됩니다.

 

부모클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
//부모 클래스
public class Parents {
 
    //부모클래스 메서드
    public void ParentsMethod() 
    {
     System.out.println("부모 클래스 메서드 입니다");    
    }
    public void ParentsMethod2() 
    {
        System.out.println("부모 클래스 메서드 입니다2");
    }
    public void ParentsMethod3() 
    {
        System.out.println("부모 클래스 메서드 입니다3");
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 

 

자식 클래스와 메인 클래스

extends Parents 부모클래스를 상속받고 있다

ParentsMethod3은 부모 클래스에서 한번 정의된 메서드지만

자식 클래스에서 재정의하여 사용하고 있다(오버라이딩)

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
35
36
37
38
39
40
41
42
43
44
45
46
 
 
//자식 클래스
public class Child extends Parents{
    
    //자식 클래스 메서드
    public void ChildMethod() 
    {
        System.out.println("자식 클래스 메서드 입니다");
    }
    
    //오버라이딩
    public void ParentsMethod3() 
    {
        System.out.println("부모 메서드를 오버라이딩 한 메서드 입니다");
    }
    
    public void ChildMethod2() 
    {
        System.out.println("자식 클래스 메서드 입니다2");
    }
}
 
 
//메인
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //자식 클래스 참조변수 C
        Child C = new Child();
        
        C.ParentsMethod();
        
        C.ParentsMethod2();
        C.ParentsMethod3();
        
        C.ChildMethod();
        C.ChildMethod2();
        
 
    }
 
}
 
//결과값
부모 클래스 메서드 입니다
부모 클래스 메서드 입니다2
부모 메서드를 오버라이딩 한 메서드 입니다
자식 클래스 메서드 입니다
자식 클래스 메서드 입니다
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 
 
반응형