추상화 클래스
abstract
- 추상화 메서드 구현
- ex) public abstract void city();
- 추상화 클래스 구현
- ex) public abstract class
실습 1)
Receipt
public abstract class Receipt {
private String chef;
public Receipt(String chef) {
this.chef = chef;
}
public void info() {
System.out.println("이 레시피는" + this.chef +" 의 것입니다.");
}
}
public class PastaReceipt extends Receipt {
public PastaReceipt(String chef) {
super(chef);
}
public void makeSource() {
System.out.println("파스타 소스는 직접 만듭니다.");
}
}
Restaurant
public class Restaurant {
public static void main(String[] args) {
PastaReceipt ps = new PastaReceipt("최현석");
ps.info();
//추상화 클래스는 생성자를 통한 객체 선언이 안된다.
//Receipt res = new Receipt("이연복"); -> 코드 오류 발생
}
}
결과)
이 레시피는 최현석 의 것입니다.
실습 2)
public abstract class Phone {
//추상화 메서드
public abstract void openingLogo();
public void powerOn() {
this.openingLogo(); //자식 클래스가 정의한 메서드 내용이 출력
System.out.println("핸드폰이 켜집니다.");
}
public void powerOff() {
System.out.println("핸드폰이 꺼집니다.");
}
}
SamSonPhone
public class SamSonPhone extends phone {
@override
public void openingLogo() {
Sytem.out.println("@@@@@@@@삼송@@@@@@@@@");
}
}
PhoneTest
public class PhoneTest {
public static void main(String[] args) {
SamSonPhone sam = new SamSonPhone();
sam.powerOn();
sam.powerOff();
}
}
결과)
@@@@@@@@삼송@@@@@@@@@
핸드폰이 켜집니다.
핸드폰이 꺼집니다.