본문 바로가기
Java

[JAVA/자바]추상클래스와 인터페이스

by hans-j 2022. 12. 7.

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(추상클래스)를 부모클래스로 둔 메인 클래스


Interface(인터페이스)를 부모클래스로 둔 메인 클래스


공부하는데 도움 많이 된 블로그!!

https://brunch.co.kr/@kd4/6

 

자바의 추상 클래스와 인터페이스

추상 클래스와 인터페이스의 차이 | 추상 클래스(Abstract class)와 인터페이스(Interface)의 차이 및 존재 이유를 설명해주세요. 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는

brunch.co.kr


**인프런 강의 'Java TPC(생각하고, 표현하고, 코딩하고 / 박매일 강사님)'를 듣고 작성 및 발췌 했습니다.