본문으로 바로가기

자바 - 상속

category 코딩/Java 2016. 9. 13. 09:00





상속의 정의


상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속은 부모 클래스의 메서드나 변수를 자식 클래스가 물려받게 된다. 이렇게 하게 되면 보다 적은 코드로 클래스를 작성할 수 있고 코드를 공통적으로 관리 할 수 있다.




상속 용어





상속을 구현하는 방법



1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
*  child, parent 클래스가 있다.
*  child 가 parent 를 상속받으려 할 경우
*  child 뒤에 'extends' 라는 키워드를 적고
*  상속받고자 하는 클래스명을 적으면 된다.
*/
 
class child extends Parent {
    / /.....
}
 
 
// ※ 주의점
// 자바는 단일 상속만 지원한다.
cs




클래스간의 관계


- has a 관계 : 특정 객체 내에 다른 객체를 가지고 있는것 /  '~은 -를 가지고 있다.' (포함관계)

- is a 관계 : 특정 객체가 다른 객체에가 자신의 기능을 포함시켜 주는것 / '~은 -이다' (상속관계)


<상속관계 그림>




[예제]


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
public class CaptionTvTest
{
    public static void main (String[] args)
    {
        CaptionTV ctv = new CaptionTV();
        ctv.channel = 10// 부모 클래스로 부터 상속받은 변수
        ctv.channelUp();  // 부모 클래스로 부터 상속받은 메서드
        
        System.out.println(ctv.channel);
        
        ctv.displatCaption("Hellow world");
        ctv.caption = true// 캡션기능 on
 
        // 캡션을 화면에 출력
        ctv.displatCaption("Hellow, world");
    }
}
 
class Tv
{
    boolean power;
    int channel;
    
    void power() { power = !power; }
    void channelUp() { ++channel; }
    void channelDown() { --channel; }
}
 
class CaptionTV extends Tv
{
    boolean caption; // 캡션상태 on,off - 초기상태 false
    
    void displatCaption(String text)
    {
        if(caption)
            System.out.println(text);
    }
}
 
cs


[실행결과]


1
2
11
Hellow, world
cs




RSS구독 링크추가 트위터 이메일 구독