java공부하기94

 

추상클래스의 사용 이유

 

- 클래스의 구조를 디자인하기 위함

: 작업을 수평적으로 분할

: 레벨 단위의 구조로 만듦

 

 

 

 

추상클래스의 사용

 

abstract class Shape

{

public abstract void draw();

public abstract void delete();

public void doAll()

{

draw();

delete();

}

}

class Circle extends Shape{

public void draw() {

System.out.println("원을 그립니다.");

}

public void delete() {

System.out.println("원을 지웁니다");

}

}

 

class Triangle extends Shape {

public void draw() {

System.out.println("삼각형을 하나, 둘, 셋, 그립니다.");

}

public void delete() {

System.out.println("삼각형을 지웁니다");

}

}

 

class Rectangle extends Shape {

public void draw() {

System.out.println("사각형을 원, 투, 쓰리, 포 그립니다.");

}

public vlid delete() {

System.out.println("사각형을 지웁니다");

}

}

//abstract을 테스트하기 위한 클래스

public class FigureTest {

public static void main(String[] args) {

Circle c = new Circle();

Triangle t = new Triangle();

Rectangle r = new Rectangle();

Shape s;

s= c;         // 에러발생 안함. C의 클래스 Circle은 s의 서브타입임

s.draw();    // s은 draw라는 메소드를 가진 타입임

s.doAll();

c.draw();

t.draw();

r.draw();

c.delete();

t.delete();

r.delete();

}

}

 

 


 

+ Recent posts