추상클래스란?

추상 클래스는 이전에도 설명했듯이 미완성 설계도에 비유할 수 있다.

미완성 메서드를 가지고 있기 때문에 이에 비유한다.

추상 클래스는 인스턴스를 생성할 수 없다.

상속을 통한 자식클래스에서 메서드의 내용을 구현하게 된다.

추상클래스를 사용하기 위해서는 다음과 같이 abstract키워드를 사용하면된다.

abstract class 클래스이름{

}

추상 메서드가 없더라도 앞에 abstract를 넣으면 추상 클래스로 사용이 가능하다.

추상메서드란?

추상 메서드는 선언만 해놓고 구현을 안해놓은 메서드라 할 수 있다.

실제 수행될 내용은 적어놓지 않았지만 이런 기능이 있을거다 라고 모호하게 작성한 것을 말한다.

왜 구현을 안하고 남겨 놓는 이유는 상속받는 클래스에 따라 메서드 내용이 달라질 수 있기 때문이다.

예를들어 Animal이라는 클래스에 추상클래스인 talk()가 있다면

이를 CatDog가 상속을 받았다면 서로 다른 내용으로 짖기 때문에 다를것 이다.

추상 클래스와 메서드는 다음과 같이 사용된다.

abstract class Animal{
    abstract void talk();
}

class Cat extends Animal{
    void talk(){
        System.out.println("미야옹");
    }
}

class Dog extends Animal{
        void talk(){
            System.out.println("멍멍");
        }
}

추상 메서드는 특이할 때 선언할때 abstract를 붙이고 마지막은 꼭 메서드와 다르게 ;를 붙여주는 것이 특징이다.

이러한 추상 클래스를 통해서 각 클래스에 공통된 메서드가 있다면 추상 클래스를 만들어 재사용하기 쉽게 만드는 것도 한가지 방법이다.

이렇게 공통된 부분으로 묶어서 추상 클래스를 만들어 상속시키면 다양한 장점이 생긴다.

  • 같은 부모를 가져 배열로 묶어서 관리할 수 있다.
  • 코드가 깔끔해진다.

Reference

  • 자바의 정석

'Java > Java' 카테고리의 다른 글

[Java/Study] 내부 클래스  (0) 2021.09.11
[Java/Study] 인터페이스  (0) 2021.09.11
[Java/Study] 다형성  (0) 2021.09.10
[Java/Study] 제어자  (0) 2021.09.09
[Java/Study] Package 와 Import 및 터미널로 자바 실행방법  (0) 2021.09.08

+ Recent posts