추상클래스

2023. 6. 15. 16:37Java/객체지향

1. 추상클래스 (abstract class)

- 추상 클래스: 미완성 설계도. 완성되지 못한 채로 남겨진 설계도

- 추상 클래스라는 것은 추상메서드를 포함하고 있는 클래스를 의미한다

- 추상클래스로는 인스턴스를 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.

- 구현: abstract키워드 붙이기

abstract class 클래스이름 { .. }

2. 추상메서드

- 추상메서드: 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 메서드. {}작성하면 오류남

즉 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메소드 인것

- 메서드를 미완성 상태로 남겨 놓는 이유는 메서드의 내용이 송속받는 클래스에 따라 달라질 수 있기 때문에

조상클래스에서는 선언부만 작성하고, 실제 내용은 상속받는 클래스에서 구현하도록 비워두는 것이다.

- 자손클래스에서 클래스 내용을 구현하지 않으면 인스턴스가 생성되지 않으므로 내용 구현에 강제성을 줄 수 있다

- 추상메서드의 구현: 리턴타입 앞에 abstract키워드 붙이기

abstract 리턴타입 메서드이름();

3. 추상클래스의 작성

- 추상화: 클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업

구체화: 상속을 통해 클래스를 구현하고 확장하는 작업

- 상속이 자손클래스를 만드는데 조상클래스를 사용하는 것이라면 (구체화),

이와 반대로 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상클래스를 만드는 것이다.

- 클래스A, B, C가 3가지의 공통점이 있으면 그것을 뽑아내서 추상클래스 X를 만든다.

그러나 각 클래스의 특징 별로 다른 내용이 있으므로, 공통점은 추상클래스 X를 상속받고 그 외의 부분은 자신의 클래스에 맞게 구현하여 완성해야만 한다. 그러면 비로소 각 클래스 A, B, C는 객체를 생성할 수 있게 된다.