반응형

추상클래스(abstract class) : 미완성 설계도

클래스를 설계도로 비유하면 추상클래스는 미완성 설계도라 볼 수 있다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다.

  • 미완성 설계도이므로 인스턴스를 생성할 수 없다.
  • 미완성 메서드(추상 메서드)를 포함하고 있는 클래스

추상 클래스 사용법은 'abstract'를 붙이기만 하면 된다.


abstract class 클래스이름 {
         ....
}
 추상메서드

메서드는 선언부와 구현부로 구성되어 있다.

선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상메서드이다.

즉, 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메서드인 것이다.

왜 미완성으로 놔둔 것일까? 그 이유는 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문에 조상 클래스에서 선언부만 작성해놓고, 주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려주고, 실제 내용은 상속받는 클래스에서 구현하도록 비워두는 것이다.

  • 추상메서드 역시 'abstract'를 앞에 붙여주고, 추상메서드는 구현부가 없으로 괄호 대신 문장의 끝을 알리는 세미콜론(;)을 적어준다.

// 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 알려준다.
abstract 리턴타입 메서드이름 ( ) ;

package ch07_1;

 

public abstract class Computer {  // 추상클래스

 

public abstract void display();

public abstract void typing();

public void trunOn() {

System.out.println("전원을 킵니다.");

}

public void turnOff() {

System.out.println("전원을 끕니다");

}

}

package ch07_1;

 

public class DeskTop extends Computer {

 

 

// 추상메서드 -> 구현메서드로 오버라이딩

@Override

public void display() {

System.out.println("모니터로 화면을 보여줍니다.");

 

}

 

@Override

public void typing() {

System.out.println("키보드로 타이핑을 합니다.");

 

}

 

}

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 인터페이스(interface)  (0) 2023.08.11
[JAVA] String 클래스  (0) 2023.08.10
[JAVA] 다형성  (0) 2023.08.10
[JAVA] 객체지향 언어  (0) 2023.08.09
[JAVA] switch 문  (0) 2023.08.09

+ Recent posts