{TIL 20} 추상클래스 (Abstract)

YeilieY·2022년 10월 9일

항해99

목록 보기
25/27

추상메소드(abstract method)란?

'메서드의 속내용이 완성되지 않은 미완성 메서드' 라고 이해할 수 있다.
덧붙이자면, 메서드의 본체가 없고 중괄호 자체가 없기 때문에 
명령의 끝을 알리는 세미콜론(;) 으로 끝나야 한다..!!
abstract  리턴타입  메소드명 (입력매개변수);
abstract  void     apple   ();

추상클래스의 정의

  • 추상 메소드(Abstract Method) 를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의되어야 한다!
  • 추상 클래스의 형식은 추상 메소드 구문과 비슷하게 class 키워드 앞에 abstract 를 붙여 표현하여야 한다!!
abstract class ApplePie {
	abstract void apple();
    void pie() {
    	// ...
    }
}

<주의해야할 부분>

간혹 가다가 중괄호 안에 아무런 코드가 작성되지 않으면 그걸 
미완성메소드로 생각하는 경우가 많다. 하지만 !! 분명히 기억해야할 것은 
작성되어져야 하는 내용이 아닌 중괄호의 유!무! 이다!! 
만일 중괄호 안에 아무런 코드가 없다면 그 메소드는 아무런 동작도 
하지말어 라고 하는 기능이 명확하게 정의된 완성된 메소드 라는 것을 
명심해야 한다.

추상 클래스의 특징

  • 힙 메모리에 생성되는 객체는 내부 요소가 미완성된 상태로 들어갈 수 없고 내부의 미완성 메소드 때문에 객제를 직접 생성할 수 없다.
  • 문법적으로 얘기하자면 추상 클래스일 경우
    A a = new A() 와 같이 생성자의 호출 자체를 할 수 없다.
  • 추상 클래스를 상속하는 자식클래스는 부모클래스에게 상속받은 추상메소드를 반드시 오버라이딩(완성) 하여야 한다.
  • =--------------------->>-------------------->>-----------------!!
profile
Fun_Dev

0개의 댓글