JAVA

[JAVA] 추상화

응디 2021. 3. 24. 10:29
  • 추상은 여러 객체의 공통되는 특성만을 추출한 것
  • 추상화는 abstract 가 붙는다.
  • 추상 클래스는 객체화가 불가능 하다. ( 단, 자식이 오버라이드 하여 사용 할 수 있음 )
  • 추상 클래스는 실체 클래스와 상속관계!

 

- Main Class

package chapter06.exam02.absmethod;
public class Main {
 public static void main(String[] args) {
  Child drum = new Child();
  //추상 메서드를 구현한 내용은 자식으로 오버라이드 받아 사용해야함
  drum.세탁();
  drum.헹구기();
  drum.탈수하기();
  //추상 클래스의 일반 메서드 호출
  drum.건조하기();
  
 }
}

 

- Child Class

package chapter06.exam02.absmethod;
public class Child extends Laundry {
 @Override
 public void 세탁() {
  System.out.println("세탁하기");
 }
 @Override
 public void 헹구기() {
  System.out.println("헹구기");
 }
 @Override
 public void 탈수하기() {
  System.out.println("탈수하기");
 }
 @Override
 public void 건조하기() {
  System.out.println("건조하기");
  
 }
}

 

- Laundry Class

package chapter06.exam02.absmethod;
public abstract class Laundry {
 //무조건 만들어야 하는 기능들
 public abstract void 세탁();
 public abstract void 헹구기();
 public abstract void 탈수하기();
 public abstract void 건조하기();
}

 

- Abs Class

package chapter06.exam02.absmethod;
public abstract class Abs {
 // 추상 메서드 - 오버라이드 해서 사용 가능
 public abstract void must1();
 public abstract void must2();
 
 //자식이 그냥 쓰는게 가능, 오버라이드 해서 사용 가능
 public void parent() {
  System.out.println("부모 메서드");
 }
}

 

- Concrete Class

package chapter06.exam02.absmethod;
public class Concrete extends Abs {
 @Override
 public void must1() {
  
 }
 @Override
 public void must2() {
  
 }
}

'JAVA' 카테고리의 다른 글

[JAVA] build  (0) 2021.03.24
[JAVA] 인터페이스  (0) 2021.03.24
[JAVA] 다형성, 프로모션  (0) 2021.03.24
[JAVA] 오버라이딩  (0) 2021.03.24
[JAVA] Getter, Setter  (0) 2021.03.24