본문 바로가기
ETC/개발지식

추상 클래스 abstract class 와 인터페이스 interface

by java나유 2022. 11. 13.

추상클래스

-class 앞에 abstract 키워드를 사용하여 정의 

-추상메소드를 선언해 상속을 이용하고 하위 클래스에서 (반드시) 구현하도록 강제하는 클래스

-상속을 위한 클래스이끼 때문에 new키워드를 통해 직접 객체를 생성할 수 없음

-java는 다중 상속을 지원하지 않기 때문에 여러 개의 추상 클래스를 상속할 수 없음

-public, protected, private 접근 제어자를 모두 사용할 수 있음 

-하위 클래스의 생성자에서 super()를 사용해 추상 클래스의 생성자를 부르고 초기화 함 

 

인터페이스

-interface키워드를 사용해 선언하는 인터페이스는 상수(static final) 와 추상 메소드(abstract method)의 집합

-인터페이스의 모든 메소드는 public abstract로 선언해야 하고 이를 생략 할 수 있다. (컴파일 시 자동 생성)

-모든 멤버 변수는 public static final으로 선언해야하고, 이를 생략 할 수 있다.

 

공통점

-메소드의 선언만 있고, 구현 내용은 없음 ( 추상메소드)

-new 키워드를 통해 객체를 생성할 수 없고, 상속받은 클래스가 반드시 선언된 추상 메소드를 구현하도록 함

 

차이점

-추상 클래스는 extends키워드를 사용하여 상속하며, 다중 상속은 불가능

-인터페이스는 implements키워드를 사용하여 상속하며, 다중 상속이 가능 

 

 

 

 

참고:

https://wildeveloperetrain.tistory.com/112

 

728x90

댓글