목록java/객체지향 (2)
시스템아 미안해

공통점 : 자식 클래스에서 반드시 오버라이딩하여 추상메소드를 상속받아야 한다. 추상클래스는 IS - A "~이다". 인터페이스는 HAS - A "~을 할 수 있는". 으로 정의한다. 추상클래스는 결국 존재의 정의, 인터페이스는 기능으로써의 역할을 한다는 것. 둘의 공통적 특징을 간단히 살펴보면 다중상속. 부모 추상 클래스는 다중 상속이 안된다. (일반 클래스도 다중 상속 x) 단 하나만. 그래서 존재,속성은 하나의 부모만으로 표현하고, 그 존재가 할 수 있는 기능은 여러 인터페이스를 다중상속 받아 능력있는 객체를 만든다. 위임. 추상클래스나 인터페이스를 상속,위임 받은 추상클래스는 추상메소드의 부분 상속이 가능하다. 다시 말해서 부모의 추상메소드를 또 한 단계 내려간 그의 자손에게 위임 가능하다는것. 반..
캡슐화란 변경 가능성이 높은 구현부분을 객체 내부로 숨기고 안정적인 부분인 public 인터페이스를 공개한는 것이다. 다시 말해, 변경 가능성이 높은 부분과 안정적인 부분을 나눠서 관리한다. 왜냐하면 변경가능성이 높은 것들을 한데 모아 감추어 관리함으로써, 이것들의 변경 사항 발생시 전체 코드에 끼치는 영향을 최소화하기 위해서이다. 보통 우리가 코드를 구현할때 상태(=변수)와 기능(=메소드)를 private형 객체로 모으는 이유가 바로 이것이다. 그래서 '구현'이라는 말 자체가 변경 가능성이 높은 것들을 실현하는 것을 뜻한다. 반대로 안정적인 부분은 퍼블릭 인터페이스로써 외부에서 접근가능하게 한다. 이것은 추상화와도 연관성이 있다. 추상화는 구체적인 것들에서 공통적이고 중요한 속성들만 추리는 것을 행한다..