[Java 무작정 따라하기] 5. 자바 추상클래스 간단 정리

 JAVA 무작정 따라하기 

5. 자바 추상클래스 간단 정리

 

  • 추상 클래스의 의미를 이해할 수 있도록 노력해봅시다.
  • 추상 메소드의 의미를 이해해 봅시다.
  • 추상 클래스와 메소드의 사용 시기를 알아봅시다.

 

1. 추상 메소드

 

  • 몸체의 구현이 없이 형식만 존재하는 메소드를 java에서 추상 메소드라고 한다.
    • 반환형태, 이름, 인자 선언만 존재하는 함수를 뜻한다.
  • 메소드(함수) 정의시에 abstract 키워드를 사용해서 만들 수 있다.
    • 자식 클래스에서 추상 메소드를 상속한 후 몸체의 구현을 해 사용한다.
    • 추상메소드(abstract)는 상반된 의미의 final(상속되서 재정의불가함수)과 동시에 사용할 수 없다.
abstract public class Circle {
	abstract public double getArea();
    //함수인데도 불구하고 중괄호가 없다.
    //모양이 정해져 있지 않기 때문에 면적을 계산할 수 없다.
}

 

2. 추상 클래스

 

  • 추상 메소드를 포함하는 클래스는 무조건 추상 클래스여야 한다.
    • 추상메소드와 다르게 일반 변수 및 일반 메소드를 포함할 수 있다.
  • 객체 생성을 할 수 없다.
    • 구체적이지 못한 불완전한 클래스라는 뜻도 가지고 있는 추상 클래스이기 때문.
  • 클래스 정의는 추상메소드와 마찬가지로 abstract 키워드를 사용해야 한다.
abstract public class Circle{
	
   	//일반 메소드 포함 가능
    public int getArea(int radius){
    	return radius;
    }
    //추상 메소드
    abstract public double getArea();
    
}

// 컴파일 오류
// 객체 생성을 할 수 없는 추상 클래스로 
// 객체를 생성하여 컴파일오류
Circle c = new Circle('3'); 

 

3. 추상 클래스의 사용 시기

 

  • 의미적으로 비슷한 클래스끼리 서로 묶고자 할 때 사용된다.
    • 공통으로 사용할 데이터 필드(변수) 및 메소드(함수)를 정의할 때 사용한다는 의미.
  • 추상 클래스는 완전하지 못한 클래스이다.
    • 기능적으로 구현하기 어려운 메소드가 존재하기 때문.
  • 그렇기 때문에 추상 클래스는 주로 자식 클래스에서 상속하여 이용한다.
    • 자식 클래스에서 추상 메소드를 상속받아 구현한다.
  • 추상 클래스를 상속한 자식 클래스는 객체 생성이 가능하다.
    • 자식 클래스에서 추상메소드를 구현하지 않는다면 자식 클래스도 추상 클래스로 남아있게된다.
  • 추상 클래스는 일반 클래스와 인터페이스의 중간적 성격을 띄운다.

 

내용이 유익하셨다면 구독 및 좋아요 클릭 부탁드려요 :)

오늘 하루도 즐거운 하루 보내세요!