본문 바로가기

Programming/JAVA

JAVA 추상메소드 & 인터페이스


* 추상메소드 & 추상클레스

메소드의 선언부만 있고, 구현부는 없는 메소드를 의미한다. abstract 키워드를 선언부에 추가하여 추상메소드를 저정한다. 주로 오버라이딩 하여 사용하는 메소드이다. 오버라이딩 하기 때문에 당연히 final, static 키워드는 사용불가.

abstract public void setItem();  이렇게 선언한다.

추상메소드가 하나라도 있는 클레스를 추상클래스라고 부른다. 

abtract class buildings {}  이렇게 선언한다.

추상클레스는 반드시 추상클래스만 가지는 것이 아니라 일반 콘크리트 메소드도 가질 수 있다.

추상클래스를 이용해서 객체를 생성할 수 없다.

예를들면,

vehicle 이라는 클래스를 추상클래스로 하여 자동차 , 배 , 비행기 클래스 등이 상속하여
vehicle에 정의되어 있는 추상 메소드를 오버라이딩 하여 구현한다.

* 템플릿 메소드란?
  메소드의 구현부에 추상메소드를 사용하는 메소드를 템플릿 메소드라 부른다. 하위 클레스에서 구현되는
  추상메소드의 동작에 의해서 실행되어 진다.

* 인터페이스
  
추상클래스에서 모든 메소드가 추상메소드인 클래스를 인터페이스라 지칭한다.
 
   public interface vehicle {} 과 같이 클래스 대신에 interface라는 키워드를 이용하여 구현한다.
   인터페이스에는 모든 메소드가 추상메소드라는 가정을 하기때문에 메소드를 구현할 때
   abstract를 붙이지 않아도 interface의 메소드는 모두 추상메소드라고 인식한다.

   클래스는 다수의 인터페이스를 상속받을 수 있다. 그리고 인터페이스를 implements한 클래스는 
  반드시 인터페이스내에 정의되어 있는 메소드를 모두 구현해야 한다.
 
  
간단한 예제 코드
  
   public interface vehicle {
    
void calculateSpeed(); 
   }
----------------------------------------------------------------
   pulic class car implements vehicle {
       
             void calculateSpeed()  {
                    // 세부동작 구현 _오버라이딩 
                }
    }
  
   요런식이다.