추상 클래스1

1. 추상 클래스란?(abstract class)

  • 추상 메서드를 포함한 클래스
  • 추상 메서드는 구현코드 없이 메서드의 선언만 있음
abstract in add(int x, int y); //추상 메서드 O
abstract in add(int x, int y) { }; //구현부({ })가 있으면 추상 메서드 X
  • abstract 예약어 사용
  • 추상 클래스는 인스턴스화(new)할 수 없음

  • 추상 클래스 실습
public abstract class Computer {
	public abstract void display();
	public abstract void typing();
	
	public void trunOn() {
		System.out.println("전원을 켭니다.");
	}
	
	public void trunOff() {
		System.out.println("전원을 끕니다.");
	}
}
public class Desktop extends Computer {

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

	@Override
	public void typing() {
		System.out.println("Desktop typing");
	}
	
}
public abstract class Notebook extends Computer {

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

	public abstract void typing();
}
public class MyNotebook extends Notebook{
	
	@Override
	public void typing() {
		System.out.println("MyNotebook typing");
	}
	
}
public class ComputerTest {
	public static void main(String[] args) {
		//Computer c1 = new Computer(); //추상 클래스는 인스턴스 생성 불가
		Computer c2 = new Desktop(); //추상 클래스를 상속해서 추상 메서드 다 구현하면 인스턴스 생성 가능
		Computer c3 = new MyNotebook(); //Computer => Notebook => MyNotebook 으로 상속되면서 모든 메서드 구현
		
		c2.display(); //Desktop display 출력
		c3.display(); //Notebook display 출력
	}
}

태그:

카테고리:

업데이트: