abstract class(추상 클래스)
extends keywords 사용
구현 메서드를 가질 수 있다.
하나 이상의 추상 메소드를 갖고 있으면 추상 클래스라고 부름.
서로 기능이 비슷한 클래스의 공통 부분을 묶을 때 사용
구현 메서드와 추상 메서드를 함께 가질 수 있다.
50% 디자인(설계), 50% 구현
Interface(인터페이스)
Implements keywords 사용
구현 메서드를 가질 수 없다.
다중 상속 형태를 지원한다.
final static 멤버변수를 가질 수 있다. /final 선언하면 값을 바꿀 수 없다.
서로 기능이 다른 클래스의 공통 부분을 묶을 때 사용
100% 추상 메서드로 이루어진다. 100% 디자인(설계), 규약
// 추상 클래스(abstract class)랑 헷갈리지 뭬!
// 추상클래스는 메소드는 ()선언부와 {}구현부로 나누어지는데,
선언부까지만 작성하고 구현부는 작성하지 않은 메소드
출처 :https://pathas.tistory.com/137
Java | Abstract 추상 클래스 & 추상 메소드
Abstract 추상 클래스 & 추상 메소드 Abstract 해당 클래스/메소드가 추상 클래스/추상 메소드임을 명시하는 예약어 클래스나 메소드 앞에 abstract를 붙여서 추상 클래스 or 추상 메소드임을 명시 클래
pathas.tistory.com
위의 내용을 정리하면
abstract class | interface class |
서로 기능이 비슷한 클래스의 공통 부분을 묶을 때 사용 | 서로 기능이 다른 클래스의 공통 부분을 묶을 때 사용 |
구현 메서드와 추상 메서드를 함께 가질 수 있다. | 구현 메서드를 가질 수 없다. |
50% 디자인(설계), 50% 구현 | 100% 추상 메서드로 이루어진다. 100% 디자인(설계), 규약 |
extends keywords 사용 | Implements keywords 사용 |
구현 메서드를 가질 수 있다. | 구현 메서드를 가질 수 없다. |
확장시키는 것이 목적 | 함수의 구현을 위한 목적 |
다중상속 불가/ 자바에서는 원래 다중상속 불가능 | 자바에서 유일하게 다중상속 가능 |
abstract class(추상 클래스)와 Interface(인터페이스)의 공통점
객체를 생성 할 수 없다. (new X)
하위 클래스에 의해 구현되어야 한다.(override :재정의 필수)
부모(상위 클래스)의 역할로 사용한다. (upcasting 으로 객체를 생성)
추상 메서드를 가진다.
공부하는데 도움 많이 된 블로그!!
자바의 추상 클래스와 인터페이스
추상 클래스와 인터페이스의 차이 | 추상 클래스(Abstract class)와 인터페이스(Interface)의 차이 및 존재 이유를 설명해주세요. 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는
brunch.co.kr
**인프런 강의 'Java TPC(생각하고, 표현하고, 코딩하고 / 박매일 강사님)'를 듣고 작성 및 발췌 했습니다.
'Java' 카테고리의 다른 글
[JAVA/자바]JAVA SE/JDK/JRE/JDK 및 IDE 차이점 -스크랩 (0) | 2022.12.10 |
---|---|
[JAVA/자바]Upcasting/업캐스팅, Downcasting/다운캐스팅 (0) | 2022.12.08 |
[JAVA/자바]상속 클래스, Override(재정의) (0) | 2022.12.06 |
[JAVA/자바]Model과 API (0) | 2022.12.04 |
[Eclipse/이클립스] Refactor로 class 이름 변경하기 (0) | 2022.09.24 |