Steady Blog

8. 추상클래스와 인터페이스 - 내용부실 본문

Programing/Java

8. 추상클래스와 인터페이스 - 내용부실

우유먹고쑥 2012. 8. 23. 11:04

*추상클래스와 인터페이스

 

1. 추상클래스

  1. 추상화의 이해와 선언법

 - 추상화라는 것은 구체적인 개념으로부터 공통된 부분들만 추려내어 일반화 할 수 있도록 하는 것을 의미한다.

  다시 말해서 일반적으로 사용할 수 있는 단계가 아닌 아직 미완성적 개념인 것이다.

 

 - 추상 메소드의 구성

public abstract void abstractMethod();

 

 - {}를 생략하여 실상 메소드가 하는 일(Body)없이 ;으로 문장의 끝을 나타내었다. 그리고 abstract라는 예약어를 통해 현 메소드가 추상 메소드임을 명시하였다.

 

 - 추상 메소드를 하나라도 가지게 되는 클래스가 바로 추상 클래스가 된다. 그리고 이런 추상 클래스 또한 다음과 같이 추상 클래스임을 명시해야 한다.

 public abstract class AbstractClass{}

 

 - 추상 클래스는 객체를 만들 수 없다.

 

2. 추상화 작업

  - 상속이 자손클래스를 만드는데 조상클래스를 사용하는 것이라면, 추상화는 기존의 클래스의 공통부분을 뽑아

   내서 조상 클래스를 만드는 것이라고 할 수 있다.

  - 상속 계층도를 따라 내려 갈수록 세분화되며, 올라갈수록 공통요소만 남개 된다.

  - 추상화 = 클래스간의 공통점을 찾아내서 공통의 조상을 만드는 작업

  - 구체화 = 상속을 통해 클래스를 구현, 확장하는 작업

 

 


<예제>

abstract class Diagram{
 abstract void draw();
}
class Triamgle extends Diagram{
 void draw(){
  System.out.println("삼각형을 그린다.");
 }
}
class Rectangle extends Diagram{
 void draw(){
  System.out.println("사각형을 그린다.");
 }
}
public class UseDraw{
 public static void main(String[] ar){
  Diagram[] ref = new Diagram[2];
  ref[0] = new Triamgle();
  ref[1] = new Rectangle();
  for(int i = 0; i<ref.length; i++){
   ref[i].draw();
  }
 }
}


 

 

'Programing > Java' 카테고리의 다른 글

10. 패키지, 예외처리, 단언 - 정리 필요  (0) 2012.08.23
9. 이너클래스와 열거형 - 정리 필요  (0) 2012.08.23
7.상속과 다형성  (0) 2012.08.23
6. 클래스의 개념  (0) 2012.08.23
5. 배열 - 코딩 할것 많음  (0) 2012.08.23