09_1 자바 추상 클래스

 

안녕하세요 Mr_ChooC(codeing)AI 입니다~

추상 메서드와 추상클래스

1.     추상 메서드

2.     추상 클래스

3.     실습

지금까지는 다양한 클래스의 사용법을 배웠습니다. 고생하셨습니다. 본 포스트에서는 다형성을 더 강력하게 사용할 수 있도록 도와주는 추상클래스와 인터페이스를 알아보고, 클래스의 복잡성을 줄여 줄 수 있는 내부 클래스에 대해서 다루어 보겠습니다. 그 중에 추상 메서드를 다루어 보도록 하겠습니다. 나머지를 알고 싶으신 분은 뒤에 포스트를 보시면 되겠습니다.

Github: https://github.com/Chooyoungjun/javastudy/tree/main/08_abstract_class

추상 메서드와 추상클래스

말 그대로 추상화한다. , 추상적으로 구조를 잡아주면서 추상클래스나 메서드를 상속을 받으면 추상적으로 구조를 만든 형태로 틀을 잡아주는 역할을 해 주고 필수적으로 정의 헤야하는 요소를 정해 주고 있습니다. 이러한 역할을 어떻게 하는지 차근 차근 알아가 보도록 하겠습니다.

1.     추상 메서드

추상 메서드란? 추상 메서드는 선언 부만 정의하고 구체적인 내용은 비워 놓은 메서드를 말하고 있습니다. , 추상적인 형태만 가지고 있는 메서드 입니다.

주의할 점: 추상메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모 클래스의 추상메서드를 구현해야 합니다.

[구조]

Abstract 리턴타입 메서드명();

Ex)


여기에서 메서드를 구현하지 않으므로 {}를 생략하고 ;으로 마무리 합니다. 추상 메서드를 사용하기 위해서는 추상 클래스가 필요 합니다. 그래서 추상 클래스에 대해서 알아보고 실습코드를 진행해 보도록 하겠습니다.

2.     추상 클래스

추상 클래스란? 추상 클래스는 추상 메서드를 멤버로 같는 클래스를 말하고 있습니다.

주의할 점 3가지

추상 클래스는 일반 메서드 필드에 존재 가능합니다.

, 추상 메서드를 하나라도 포함되어야 합니다.

객체를 생성 할 수 없는 클래스 입니다!

[구조]

abstract class 클래스명{

           

            abstract 리턴타입 메서드명();

}

Ex)


위의 snapshot과 같이 추상 클래스와 추상 메서드를 만들어 주는 것을 알아야 합니다.

추상 클래스 사용 목적? 구현은 자식 클래스가 하도록 메서드의 기능을 비워 놓고 싶을 때 사용합니다. 그래서 틀만 잡아서 다양한 형태로 변형을 해서 사용하라는 의미 입니다.

클래스 사용시 주의 사항

1.     추상클래스에 구현 되어 있는 추상 메서드를 구현 하지 않으면 에러 발생


위의 snapshot과 같이 메서드를 정의해 주어야 합니다.

2.     추상 클래스 안에 일반 메서드도 정의가 가능 합니다.


위의 그림과 같이 일반 메서드도 정의가 가능하다는 것을 집고 넘어가시면 되겠습니다. 위의 사항들을 숙지를 하고 실습을 진행해 보도록 하겠습니다.

[실습]

모양이라는 것을 abstract class로 만들고 draw라는 abstract method를 만들어서 각 각의 도형이 상속을 받도록 정의해 보도록 하겠습니다.


위의 snapshot과 같이 추상 클래스와 메서드를 상속 받는 클래스를 만들어서 정의를 해 보았습니다. 이러한 클래스를 배열 형식으로 3개를 객체화 하고 upcasting을 통해서 각각 다른 자식을 상속 받는 것을 해 보도록 하겠습니다.



위의 snapshot과 같이 abstract class를 활용해서 생성하여 자식 클래스로 upcasting하여 각각의 속성(사각형, , )에 맞게 출력하는 것을 확인 할 수 있습니다.

긴 글을 읽어 주셔서 감사합니다. 뒤에서는 내부 클래스와 익명클래스에 대해서 다루도록 하겠습니다.

Comments