열심히 끝까지

26강 추상클래스/인터페이스/내부클래스 - 추상 메서드와 추상클래스 본문

멘토씨리즈 JAVA

26강 추상클래스/인터페이스/내부클래스 - 추상 메서드와 추상클래스

노유림 2022. 4. 30. 21:52

26-1 ) 추상 메서드와 추상 클래스
         (1) 추상 메서드
                  : 추상 메서드는 선언부만 정의하고 구체적인 내용은 비워놓는 메서드

               주의 할 점
               - 추상 메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모 클래스의
                 추상 메서드를 구현해야 한다!
                
               추상 메서드 구현 방법
            < 구조 >
                   abstract 리턴타입 메서드명();
               - 구현하지 않으므로 {} 생략하고 ;으로 마무리

         (2) 추상 클래스
                  : 추상 클래스는 추상 메서드를 멤버(필드)로 갖는 클래스

                주의 할 점
                - 추상 클래스는 일반 메서드 필드에 존재 가능
                - 단, 추상 메서드를 하나라도 포함해야 한다
                - **객체를 생성할 수 없다**

                추상 클래스 구현 방법
               < 구조 >
                     abstract class 클래스명{
                              ...
                              abstract 리턴타입 메서드명();
                      }
                  - 구현하지 않으므로 {} 생략하고 ;으로 마무리

                  추상 클래스 사용 목적?
                         : 구현은 자식 클래스가 하도록 메서드의 기능을 비워놓고 싶을 때 사용!

                  ex ) <실습> shapeMain
                           도형 클래스를 생성하고 draw()메서드를 만들고,
                           도형 클래스를 상속받는 사각형, 원, 선 class를 생성한다.
                           각 클래스에 맞게 draw() 오버라이딩 하기

abstract클래스 구현 전 ShapeMain클래스 작성 및 출력
추상클래스 abstract 클래스 구현 및 출력



                          도형 class - draw() : 그리다

                          사각형 class - draw() : 사각형을 그리다
                          원 class - draw() : 원을 그리다
                          선 class - draw() : 선을 그리다
 
            **추상 클래스 사용시 주의할 점**
               - 자식 클래스에서 추상 메서드를 구현하지 않으면 오류!
               - 일반 메서드와 함께 사용 가능! 
                  추상 메서드는 abstract 키워드 붙이기!

                  <실습>
                    포켓몬이라는 추상클래스를 만들고,
                    구체적인 피카츄, 꼬부기 클래스를 구현하는 예제

추상클래스 abstract를 이용한 클래스 작성
추상클래스 abstract를 이용한 클래스 및 출력