추상클래스 vs 인터페이스

Bong2·2022년 2월 19일
0

JAVA

목록 보기
4/16

일반적으로 Java에서 클래스는 2가지로 구분
1. 일반클래스
2. 추상클래스
(인터페이스는 클래스가 아니다)

추상 클래스

public abstract class Test {
 void run();
 abstract void test();

}
  • 추상메서드(아직 구현되지 않은 메서드) 0개를 가지고 있다.

  • 일반 메소드, 변수

  • 상속받기 extends

class Dog extends Test{
	
    void test(){
    	...
    }

}

확장, 상속을 의미함으로써 물려주는 개념. 부모-자식 관계인 계층 구조를 나타냄

인터페이스

  • 설계도 또는 명세
  • 모든 메서드가 추상 메서드이고, 일반 변수를 가질 수 없다.
    인터페이스를 구현한 클래스는 모든 메서드를 강제적으로 구현해야한다.
interface Vehicle{
	abstract void run();
    abstract void walk();
}
  • implement
class Dog implements Vehicle{
	
    void run(){
    	...
    }
    
    void walk(){}

}

상속 개념이 아닌 동일한 동작을 위한 구현을 강제화

인터페이스를 사용하는 이유?

하나의 규약, 즉 구체적인 약속 같은 것으로 인해 협업에 필수적이라고 볼 수 있다.

큰 프로젝트일수록 또는 개발 인원이 많을 경우 인터페이스를 통해 많은 이점을 얻게 된다.

profile
자바 백엔드 개발자로 성장하자

0개의 댓글

관련 채용 정보