FlowerBombs
추상화 본문
추상화
- 상속으로 인해서 발생할 수 있는 소스코드의 여러 형태들을 단일화 시키기 위해
다형성에서 사용되는 기법들을 강제로 사용하도록 소스코드로 설정하는 기법.
- 주로 여러 명이 협업하는 경우 많이 사용된다.
추상 메서드 정의
- 메서드의 선언만 있고 구현부가 없는 형태
- 하나 이상의 추상 메서드를 포함하는 경우 클래스 역시 추상으로 지정되어야 한다.
1 2 3 4 | public abstract class hello { // 추상클래스로 정의 (abstract) public void foo() {...} // 구현부 있음 public abstract void bar(); // 구현부 없음 = 추상메서드 } | cs |
public class World extends Hello {... }
Hello h = new World()
추상 클래스는 상속을 통해서만 기능에 접근 가능하다.
(직접 객체 할당 불가능함. 선언은 가능) ← 암묵적 형변환은 가능.
추상 클래스를 상속받는 경우
자식 클래스는 반드시 부모의 추상 메서드를 재정의하여 구현부를 생성해야 한다.
1 2 3 4 | public class World extends hello{ @Override public void bar(){...} // 부모에게 정의된 추상 메서드를 재정의 } | cs |
Comments