본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -33

by oncerun 2020. 3. 19.
반응형

1. 추상 클래스 &추상 메서드 (abstract)

abstract는 한국어로 번역하게되면 "추상적인"이라는 말이 됩니다.  하지만  그 뜻을 이해하기 쉽게 이용 됐을 때 사용되는 뜻으로 번역해 보자면 "공통분모"입니다 그룹 된 클래스 내에서 공통적으로 사용되는 기능들을 모아서 한 곳으로 모아 놓기 위한 공간 정도로 생각합니다.

 

기본적인 문법

public void abstract Class A
	public abstract int bMethod();
    
   -------------------------------
   public void Class B extends A{
   @Override 
   public int bMethod(){
   	return 3;
   }
   }

우리는 추상클래스와 매소드를 지정해줄 때 abstract라는 키워드를 사용해줍니다. 반드시 abstract가 붙은 메서드나 클래스는 그것을 직접적으로 new A();처럼 인스턴스를 생성해줄 수 없으며 그것을 상속시킬 클래스를 만들어서 생성된 클래스로써 기능을 사용하도록 강제하는 것입니다.

 

추상 메서드는 그 메서드의 구체적인 로직을 담고 있는 본체는 존재하지않고 메소드에대한 선언한 모습만 남아있는 모습입니다.  그렇게되면 상속받은 자손클래스는 강제적으로 메소드를 작성하도록 요구하여 책임을 넘기는 것입니다.

 

class b는  메소드의 본체를 작성해주지 않으면 오류가 발생하게 되는데 그 오류 내용은 A의 메서드인 bMethod를 생성하라라는 오류 내용이 출력됩니다.

 

또 추상 메서드를 하나라도 가지고 있는 클래스는 추상 클래스로써 정의되어야 됩니다.

 

2. 추상 클래스를 사용하는 이유

 

작은 규모에서는 잘 사용하지 않지만  큰 규모 프로젝트에서 다양한 맥락으로 사용될 수 있는 기능이 있고 그 기능을 사용하는 것에 대해 공통적인 부분이 있고 용도에 따라서 그 기능이 달라질 수 있다면 새로운 클래스에 기능을 넣고 추상 클래스로 만든 클래스에는 그 (기능==메서드)에 대해 시그니처만 정의해놓고 그것을 상속받은 클래스는 용도에 따라서 달라지는 구현을 기능을 사용하는 사용자의 필요해 따라 직접 작성하도록 강제하는 것이 추상 클래스를 사용하는 용도이다.

여라가 지 기능을 동시에 관리하는 목적과 코드의 집중화도 하려는 목적이 있다.

 

3. 디자인 패턴 (참고용)

디자인 패턴에서 디자인이라는 뜻은 프로그램에서의 설계의 의미이며 패턴은 반복적인 것이다. 디자인 패턴은 프로그래밍을 하는 행위 안에 로직의 전개 방법 로직의 구성들이  공통적으로 반복되는 패턴이 존재했기에  그런 것을 정리해놓은 것을 디자인 패턴이라고 한다.

반응형

댓글