추상클래스
-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
'ETC > 개발지식' 카테고리의 다른 글
메일 API 연동중 img src 이미지 엑박으로 뜰 때 해결 방법 (3) | 2023.03.22 |
---|---|
컴퓨터가 노트북이 갑자기 느려졌다면? CPU사용량이 너무 높다면? (0) | 2023.01.25 |
오버로딩(Overloading)과 오버라이딩(Overriding) 개념 (0) | 2022.11.13 |
GET POST 차이 / forward redirect 차이 (0) | 2022.11.12 |
RESTful API 이해 (0) | 2022.11.10 |
댓글