추상화

위수현·2023년 1월 31일
0

추상화란?

🔎 다형성(Override, Overload)은 서로 다른 기능이지만 메서드의 이름을 공통되게 처리함으로서 전체 프로그램의 일관성을 유지하게 한다.
🔎 Override 처리의 문제 발생 가능성
🔎 "@Override"는 선택적으로 사용, 메서드 이름에 실수가 발생하면 에러가 아닌 새로운 메서드의 정의로 인식되므로 의도하지 않은 실행결과를 가져올 수 있다.
🔎 부모의 기능을 재정의하지 않았다면 다형성의 구현은 이루어지지 않게 된다.


-> 추상 파일을 만들었을 때 위와 같이 자바 프로젝트에 'A'라고 기재된다.

추상화를 사용하는 이유


-> 부모클래스에 생성된 메서드의 정의 값과 자식클래스에 생성된 메서드의 생성자 정의 값이 다를 때 오류 발생

-> Abstract를 통해 부모클래스와 자식클래스의 생성자 정의 값을 맞춰줄 수 있다.

문법 오류 방지 가능 + 유지보수에 용이

상속 처리시, Override 강제하기

🔎 추상화 기법은 특정 클래스를 상속받은 경우, 부모의 특정 메서드들을 무조건 재정의하도록 강제하는 기법
🔎 특정 메서드를 재정의하도록 강제함으로써,자식 클래스들을 작성하기 위한 가이드 역할을 해줄 수 있다.
🔎 즉, 추상화 기법은 java 클래스를 작성하기 위한 설계도를 소스코드 형태로 제시하는 역할을 한다.

추상메서드 만들기

🔎 추상 메서드를 정의하기 위해서는 'abstract' 키워드를 사용하여 메서드를 정의한다.
🔎 추상 메서드는 자식 클래스가 구현해야하는 메서드의 가이드라인만 제시하기 위한 목적으로 사용되기 때문에, 선언만 가능하고 구현부가 없다.


-> 오류 구문 발생


-> 오류 구문 해결

// 선언만 가능하고, 구현부를 위한 블록이 존재x
public abstract void sayHello();	// 구현부가 없음
									// 자식층에서 해줌

추상메서드를 포함한 클래스

🔎 추상 메서드를 하나 이상 포함하고 있는 클래스는 반드시 '추상클래스'로 정의되어야 한다.
🔎 추상클래스는 'abstract'키워드를 사용하여 정의할 수 있다.

// 추상클래스
public class Hello{
	public abstract void sayHello();

}

추상클래스는 객체를 생성할 수 없고, 반드시 상속을 통해서만 사용될 수 있다.
즉, 추상클래스는 다른 자식 클래스를 위한 '가이드라인'의 역할을 한다.

공통 기능과 설계 제시를 모두처리하는 법

🔎 추상 클래스는 생성자, 멤버변수, 일반 메서드 등을 포함할 수 있다.
🔎 즉, 공통 기능과 가이드라인을 모두 정의하여 다른 클래스에게 상속된다.

profile
수현

0개의 댓글

관련 채용 정보