[ 상속, 추상클래스, 인터페이스에 대해서 알아보기 ]
Q. 상속(extends)이란?
- 중복된 부분을 제거하기 위해 발전된 기능으로써 부모클래스와 이를 상속받는 자식클래스가 존재하여 이를 자식클래스에서 구현하는 기능을 말합니다.
- 기본적인 상속 구조는 is-a의 관계로 이루어져야 합니다. [ex : 호랑이는 동물입니다.]
- 상속의 제약을 주려면 final로 선언하여 다른 클래스에서 해당 클래스를 상속받지 못하게 제약을 줄 수 있습니다.
Q. 추상클래스(abstract class)란?
- 추상이란 명확한 형태보단 이러이러한 모습을 뛸 것이다라는 약속처럼 실제로 구현체가 존재하지 않는 객체를 말합니다.
- 부모클래스인 추상클래스는 형태가 없기에 이를 상속받는 클래스는 반드시 실제로 구현을 해주어야 합니다.
Q. 인터페이스(interface)란?
- 다중상속을 지원하지 않는 자바에 다중상속과 유사한 기능을 가능케 해주는 기능입니다.
- 멤버 변수는 모두 상수이며, 메소드는 무조건 추상 메소드로 선언되어야 합니다.
Q. 추상클래스, 인터페이스 차이점?
- 인터페이스는 반드시 상수와 추상 메소드만 선언되어져야 하지만 추상 메소드가 하나이상은 존재해야 하는 추상클래스는 모든 변수와 메소드에 반드시 선언되어질 필요는 없습니다.
Q. 다형성이란?
- 하나의 메소드나 클래스가 있을 대 다양한 방법으로 해석이 되어져 동작하는 것을 의미합니다. 가장 대표적인 예로는 오버로딩을 예로 들 수 있습니다.
Q. 오버라이딩(overriding), 오버로딩(overloading)?
- 오버라이딩 : 부모클래스에서 상속 받은 메소드를 자식 클래스에서 재정의 하는 경우를 말합니다. 상위 클래스의 메소드의 이름과 매개변수 유형등을 동일하게 하면 재정의가 가능합니다.
- 오버로딩 : 이름이 같은 메소드끼리 매개변수를 다르게 하여 서로 다르게 다양한 동작을 가능케 구현되어 지는 것을 말합니다.
- 참고 사이트 : http://hyeonstorage.tistory.com/180
- 참고 문헌 : Head First JAVA
'Development > JAVA' 카테고리의 다른 글
[JAVA] Java I/O 정리 (1) | 2016.09.17 |
---|---|
[JAVA] 게시판 예제 - 3 (ArrayList, 기능 분리) (0) | 2016.09.02 |
[JAVA] Collection,Map 정리 (0) | 2016.09.02 |
[JAVA] 게시판 예제 - 2 (배열 복사) (0) | 2016.08.29 |
[JAVA] 게시판 예제 - 1 (배열, Scanner) (0) | 2016.08.24 |