Java - 추상메서드, 인터페이스

2020. 8. 23. 18:54Java/Java

반응형

자바의 메서드에는 일반메서드, 정적메서드 그리고 추상메서드가 있다.

 

세개의 특징을 보면 아래와 같다.

 

 1.일반메서드->객체생성으로 호출가능=>특별한 목적,기능
 2.정적메서드->객체생성 없이 호출이 가능->단순,반복,보편적인 기능

 3.추상메서드--->1)메서드의 선언만 되어있는 메서드

                    public abstract void go();  //1) ~메서드명();
                    ========
                    abstract public void go(){} //2) ->기능이 없는것
                    ========                           일반메서드
                      2)추상메서드선언을 위해 앞에=> abstract 예약어를 써준다.
                  3)추상메서드를 한개라도 가지고 있는 클래스를 추상클래스라고 한다.
                            =>추상클래스를 일반클래스와 구분 abstract class 클래스명

 


 ** 추상클래스특성 **

1) 클래스 내부에 추상메서드가 한개라도 존재하면 추상클래스다. 
               ex) abstract class 추상클래스명

2) 추상클래스를 상속받은 자식클래스는 무조건 추상메서드를 반드시 오버라이딩을 한다. 
  
3)객체를 생성할 수 가 없다.

 

4)사용목적: 설계를 목적으로 사용한다.

 

 


자바에서는 인터페이스라는 개념이 존재한다. 인터페이스는 자바에서 다중 상속을 지원하는 방법이고, 추상 클래스와 비슷하게 설계를 위해 사용한다.

 

 

** 인터페이스(Interface) ** 

1.추상클래스와 사용목적이 같다.(=>설계목적)=>공통점
2.형식

 interface 인터페이스명{
      //멤버변수->상수만 가능->static final를 이용해서 상수선언
      //추상메서드만 선언이 가능(100%)->일반메서드 사용X
  }

3.인터페이스의 추상메서드는 예약어 abstract을 사용하지 않는다. (구분할 필요없다)

  public (static final) 타입 상수이름=값
               생략가능

  =>public 타입 상수이름=값 으로 인식

  public (abstract) 메서드명;
              생략가능

4. 클래스에서 implements를 통해 불러온다.

  Class A implements 인터페이스명 

 


추상클래스와 공통점 

4.인터페이스를 상속받은 자식클래스는 역시 인터페이스에서 선언된 추상메서드를 반드시 오버라이딩해야 한다.

   (강제성,통일성 부여)
                                         
5.객체를 생성하지 않는다.


추상클래스와의 차이점

1.일반메서드도 포함시킬 수 있다. -> 인터페이스는 추상메서드만 작성
2.추상클래스->단일 상속만 가능   
                 ->인터페이스 다중상속 가능
    

반응형

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

Java - static(정적)  (0) 2020.08.23
Java - final  (0) 2020.08.23
Java - 접근지정자  (0) 2020.08.23
Java - 상속(2) - super()  (0) 2020.08.23
Java - 상속(1)  (0) 2020.08.23