개발/Java

[Java] 추상 클래스는 미완성된 설계도이다

서해쭈꾸미 2024. 4. 25. 22:46

클래스는 설계도라는 글을 쓴 적이 있다.

2024.04.23 - [개발/Java] - [Java] 클래스는 설계도다

 

[Java] 클래스는 설계도다

객체와 클래스 소프트웨어에서 객체를 만들기 위해서는 설계도에 해당하는 클래스가 필요하다. 클래스를 토대로 생성된 객체를 해당 클래스의 ‘인스턴스’라고 부르며 이 과정을 ‘인스턴스

ggumijju.tistory.com

 

그에 비해 추상 클래스는 미완성된 설계도라고 할 수 있겠다. 왜 그런지 코드를 통해 확인해보자.

 

 

 

추상 클래스

abstract 키워드를 사용하여 추상 클래스를 선언할 수 있다.

 

public abstract class 추상클래스명 {

}

 

추상 클래스는 자식 클래스에 상속되어 자식 클래스에 의해서만 완성될 수 있다. 그렇기에 설계도긴 설계도지만, 조금 미완성된 설계도라고 하는 것이다.

 

 

 

 

추상 메서드

추상 메서드는 아직 구현되지 않은 미완성된 메서드이다.

 

public abstract class 추상클래스명 {
		abstract 리턴타입 메서드이름(매개변수, ...);
}

 

추상 클래스에서는 메서드의 선언만 해주고, 메서드의 실제적인 구현은 추상 클래스를 상속받은 자식 클래스에서 해주어야한다. 추상 클래스의 이러한 특징은 기능 추가가 됐을 때에도 코드 수정 없이 확장이 가능하게 해준다는 점에서 큰 장점을 가진다.

 

 

 

 

추상 클래스 상속

 

추상 클래스를 상속받는 자식클래스는 아래와 같은 구조를 가진다.

public class 클래스명 extends 추상클래스명 {
		@Override
    public 리턴타입 메서드이름(매개변수, ...) {
		       // 실행문
    }
}

 

상속받은 클래스에서 추상 클래스의 추상 메서드는 반드시 오버라이딩 되어야한다. 

 

 

 

 

이 글에서는 추상 클래스를 어떻게 사용하는지 간단한 문법적인 요소만 다루었고, 추상 클래스나 추상 메소드에 대한 좀 더 자세한 내용은 아래에서 확인 할 수 있다.

 

2024.04.24 - [개발/Java] - [Java] 추상 메서드 / 추상 메서드 오버라이딩 (cf. 일반 메서드 오버라이딩)

 

[Java] 추상 메서드 / 추상 메서드 오버라이딩 (cf. 일반 메서드 오버라이딩)

추상 메서드부모 클래스에서 간단히 선언하고, 자식 클래스에서 오버라이딩 받아 구체화 하는 것.부모 클래스에서 추상 메서드를 선언할 땐 메서드 앞에 abstract 제어자를 붙여준다. 추상 메서

ggumijju.tistory.com

2024.04.25 - [개발/Java] - [Java] 인터페이스를 쓰면 좋은 경우 / 추상 클래스를 쓰면 좋은 경우 정리

 

[Java] 인터페이스를 쓰면 좋은 경우 / 추상 클래스를 쓰면 좋은 경우 정리

인터페이스와 추상 클래스는 공통점도 많고 비슷한 경우에 쓰이기 때문에 둘 중 어떤 걸 쓰는 게 적합한 건지 많이 헷갈렸다. 그래서 어떤 상황에 인터페이스를 쓰면 좋은지, 어떤 상황에 추상

ggumijju.tistory.com