Java 추상 클래스

Codren·2021년 6월 2일
0
post-custom-banner

Section 1. 추상 메서드

1. 추상 메서드 (Abstract Method)

구현 코드 없이 선언만 있는 메서드로써 하위 클래스에서 오버라이딩 될 목적으로 생성됨

  • 메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성
  • 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body) 를 가짐 {}




2. 추상 메서드 선언

  • abstract 키워드 지정
  • {} body 부분을 갖지 않음
abstract void display(); 		



Section 2. 추상 클래스

1. 추상 클래스 (Abstract Class)

상속을 목적으로 생성되는 클래스로써 추상 메서드를 포함한 클래스

  • 추상 클래스는 new 연산자로 인스턴스를 생성할 수 없음 (메서드가 제대로 구현되지 않았기 때문)
  • 모든 메서드가 구현 된 클래스도 abstract로 선언되면 추상 클래스로 인스턴스화 할 수 없음




2. 추상 클래스 생성 및 상속


  • 상속을 목적으로 생성된 Computer 클래스
  • display, typing 추상 메서드를 갖음
public abstract class  Computer {

	abstract void display();
	abstract void typing();
	
	public void turnOn() {
		System.out.println("전원을 켭니다.");
	}
	
	public void turnOff() {
		System.out.println("전원을 끕니다.");
	}
}

  • Computer 추상 클래스를 상속 받아 추상 메서드를 모두 구현
public class DeskTop extends Computer{

	@Override
	void display() {
		System.out.println("DeskTop display");
	}

	@Override
	void typing() {
		System.out.println("DeskTop typing");
	}

	@Override
	public void turnOff() {
		System.out.println("Desktop turnoff");
	}
}

  • Computer 추상 클래스를 상속 받아 typing 메서드만 구현 -> 아직 추상 클래스
public abstract class NoteBook extends Computer{
	@Override
	public void typing() {
		System.out.println("NoteBook typing");		
	}
}

  • NoteBook 추상 클래스를 상속 받아 display 메서드 구현
public class MyNoteBook extends NoteBook{

	@Override
	void display() {
		System.out.println("MyNoteBook display");		
	}
}
post-custom-banner

0개의 댓글