ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 추상 클래스(abstract class)
    프로그래밍/JAVA 2022. 8. 8. 22:04
    728x90

    추상 클래스는 클래스의 용도가 객체 생성 용도로 사용할 수 없고 반드시 자식 클래스에서 오버라이딩하여 구현해야 하는 추상 메소드를 한개 이상 가지고 있는 클래스이다. 

     

    추상클래스의 역할은 변수의 타입으로 선언하는 용도와 상속의 본연의 기능으로 특정한 코드를 하위 클래스로 물려주기 위해 생성한다. 예를 들어 추상클래스에서 공통되는 부분을 미리 만들어 놓고 자식 클래스에서 필요한 부분을 재정의하여 사용함으로써 생산성이 향상되고 배포가 용이해진다.

     

    추상 클래스는 자식 클래스에서 상속을 해야 사용 가능하기 때문에 자식 클래스는 다른 클래스를 상속 받을 수 없다.(자바의 단일 상속 규칙)

     

     

    추상 클래스 선언

    abstract class Abstract1 {
    
        // 추상클래스를 만드려면 적어도 1개 이상의 추상 메소드가 존재해야한다.
        public abstract int plus(int num1, int num2); // 추상메소드
    }

    추상 메소드는 선언부만 존재하며 선언부 꼬리부분에 세미콜론으로 마무리한다.

     

     

    추상 클래스 구현

    추상 클래스를 구현하는 위치는 상속 받은 자식 클래스 안에서 추상클래스를 오버라이딩 한다.

    public class Abstract2 extends Abstract1{
    
        // Abstract1에 있는 추상 메소드를 반드시 오버라이딩 해야함
        
        @Override
        public int plus(int num1, int num2) { // 추상메소드 구현
            return num1 + num2;
        }
    }

     

     

    객체를 생성할 때는 추상 클래스로 객체 생성하는 것은 불가능하므로 구현 클래스인 자식 클래스로 객체 생성해야한다.

    public class Main1 {
        public static void main(String[] args) {
            // 추상 클래스를 직접적으로 객체 생성이 불가능하며 
            // 추상클래스를 구현한 구현 클래스의 객체를 생성해야함
            // Abstract1 abstract1 = new Abstract1();
            Abstract2 abstract2 = new Abstract2();
            int result = abstract2.plus(10,5);
            System.out.println(result);
        }
    }
    
    /* 실행결과
    15
    */

     

     

     

     

     

    728x90

    댓글

Designed by Tistory.