Do It Java Day19
추상 클래스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 출력
}
}