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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.test;
 
public class abstract {
 
    public static void main(String[] args) {
 
        
        //추상 클래스, Abstract Class
        //    - 상속받는 클래스(객체)의 사용법을 표준화 (사용자경험중시)
        //    - 멤버 중 메소드에 대한 제약 사항
        //    - 행동에 대한 강제성 부여
        //    - 부분 구현이 가능
        //    - 추상 메소드를 가림
        //    - 객체 상성 불가능
        //    - 사용 용도 : 일반 클래스의 부모 역할, 참조 변수
        //    - 추상 클래스 = 일반 클래스 + 추상 메소드
        
        //추상 메소드, Abstract Method
        //    - 상속받는 클래스(객체)의 사용법을 표준화
        //    - 구현부가 없는 메소드
        
        
        //주의! 추상클래스는 객체를 생성할 수 없다.(실체화될수x)
        //일반클래스의 부모역할만 한다., 변수는 만들 수 있다. 
        //그러면?.. 자식으로 객체를 만든다.
        //Monitor m1 = new Monitor();
        //m1.on();
        
        LG550 lg = new LG550();
        lg.on();
        lg.off();
        
        HP660 hp = new HP660();
        hp.on();
        hp.off();
    }
 
}
 
//ex) 추상클래스
abstract class Monitor {
    
    //뭘 적느냐?
    //일반 클래스 멤버 구현(변수, 메소드)와
    //추상 메소드
    
    public String model; //모델명
    public int width;      //해상도
    public int hejght;
    
    public void checkModel() {
        System.out.printf("모델명 : %s\n"this.model);
    }
    
    //추상 메소드 선언 - 구현부가 없음(구현이 안된 메소드) {}가 없음
    public abstract void on();
    public abstract void off();
        
}
 
 
//추상 클래스를 부모로 상속
//    -> 반드시(***) 추상 클래스의 추상 메소드와 동일한 메소드를 구현 
class LG550 extends Monitor {
    
    //LG550만의 멈버 추가
    
    public void on() {
        //on()-> ㅗ모니터는 on(0 사용법을 가지고 전원 켜주세요.,
        System.out.println("lG 모니터 켜기");
    }
    
    public void off() {
        System.out.println("LG 모니터 끄기");        
    }
}
 
 
//extends Monitor : LG550과 동일하게 규격을 지키겠습니다.
class HP660 extends Monitor {
    
    //HP660만의 일반 멤버 구현.,
    
    @Override
    public void on() {
        System.out.println("HP660 전원 켜기");
    }
    
    @Override
    public void off() {
        System.out.println("HP660 전원 끄기");
    }
    
    
}
cs


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

OVERRIDE(오버로딩)  (0) 2015.05.22
ABSTRACT CLASS(추상클래스)2  (0) 2015.05.22
OBJECT CLASS  (0) 2015.05.22
INHERITANCE(상속)  (0) 2015.05.22
CONSTRUCTOR(생성자)3  (0) 2015.05.22

+ Recent posts