ETC/개발지식
추상 클래스 abstract class 와 인터페이스 interface
java나유
2022. 11. 13. 17:41
추상클래스
-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