JAVA_17_추상화(Abstract)

hyeong taek jo·2023년 7월 6일

JAVA

목록 보기
17/39

📌1. 추상 메서드

  • 선언부만 있고 구현부(몸통, body)가 없는 메서드
  • 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용
  • 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성(오버라이딩)

📌2. 추상 클래스

  • 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나
    기존클래스의 공통 부분을 뽑아서 추상클래스를 만든다
  • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
  • 코드의 복잡성을 줄일 수 있다(캡슐화)
  • 추상 메소드를 하나라도 가지고 있는 클래스를 추상 클래스
  • 추상 메소드 없이 변수들과 생성자만 선언된 추상클래스 생성가능
  • 직접 객체 생성 불가능

예시


abstract class AbsClass {
	int kkk = 0;
	public void setKkk(int kkk) {
		this.kkk = kkk;
	}
	
	public AbsClass() {
		System.out.println("추상 Class 생성자 ");
	}
	
	// 추상 클래스는 하나 이상의 추상 메소드가 존재 해야함
	abstract void print();
}

class ImplAbsClass extends AbsClass {

	@Override
	void print() {
		System.out.println("ImplAbsClass kkk-->"+kkk);
	}
	
}


public class Abstract1 {

	public static void main(String[] args) {
		// 추상메서드가 하나라도 존재하면 인스턴스(객체) 생성할 수 없다.
		//AbsClass absClass3 = new AbsClass();
		
		AbsClass absClass = new ImplAbsClass();
		absClass.setKkk(12);
		absClass.print();
	}

}

추상 Class 생성자
ImplAbsClass kkk-->12

profile
마포구 주민

0개의 댓글