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
package com.test;
 
public class abstract {
 
    public static void main(String[] args) {
        
        Circle c1 = new Circle();
        Rectangle r1 = new Rectangle();
        
        c1.draw();
        r1.draw();
        
        c1.erase();
        r1.erase();
        
    }
 
}
 
 
//도형 클래스
//    - 원, 사각형 클래스
 
//부모 클래스를 일반 클래스? 추상 클래스? 할 지의 기준?
//1. 자식에게 물려줄 멤버만 필요 -> 일반 클래스
//2. 자식에게 물려줄 멤버 + 자식 행동을 표준화 -> 추상 클래스
abstract class Shape {
    
    //ex)2번
    
    //일반멤버
    public String name;
    public int width;
    public int height; 
    
    public void check() {
        System.out.printf("도형 : %s\n"this.name);
    }
    
    //추상멤버
    public abstract void draw();
    public abstract void erase();
}
 
//일반 클래스
class Circle extends Shape {
    
    @Override//추상메소드를 재정의했따..
    public void draw() {
        System.out.println("원을 그립니다.");
    }@Override
    public void erase() {
        System.out.println("원을 지웁니다.");
    }
}
 
class Rectangle extends Shape {
    
    @Override
    public void draw() {
        System.out.println("사각형을 그립니다.");
    }@Override
    public void erase() {
        System.out.println("사각형을 지웁니다.");
    }
}
cs


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

FINAL  (0) 2015.05.22
OVERRIDE(오버로딩)  (0) 2015.05.22
ABSTRACT CLASS(추상클래스)1  (0) 2015.05.22
OBJECT CLASS  (0) 2015.05.22
INHERITANCE(상속)  (0) 2015.05.22

+ Recent posts