차근차근/JAVA JSP

인터페이스 interface

예쁜꽃이피었으면 2014. 7. 26. 01:30

인터페이스

- 다중상속을 도와준다 (자바에선 불가능하지만)

 

 

 

http://babcider.tistory.com/65 - 인터페이스의 개념과 활용.. 복사안됨..ㅜㅠ

티스토리 아이디 없는 사람은  댓글도 못씀...ㅠㅜ

음,, 밥사이다님 이글 보시면 답글 좀..그림으로 설명된 부분만 가져왔습니다..ㅜ





 

 

[ 인터페이스 ]
자바에서는 클래스의 다중 상속을 허용하지 않지만, 상속 관계에 상관없이 인터페이스를 구현할 수 있다. 그러나 인터페이스는 클래스들의 공통된 기능만 표현이 가능하고, 데이터는 표현할 수 없다. 인터페이스는 class명 대신에 interface 키워드로 선언을 하면되고 클래스 쪽에서 implements 키워드를 사용하여 구현하면 된다.


 

 

 

 추상클래스와 인터페이스의 가장 큰 차이점은 바로 '클래스'냐 아니냐의 차이입니다. 추상클래스는 엄연한 클래스로 이를 구현하는 것은 '상속(extends)'입니다. 그러나 인터페이스는 '포함(implements)'라는 키워드를 통해 구현하게 되는데 이는 자바에서 매우 중요한 차이를 가집니다.

 

 

 

 

 

 

 

 

 

 

http://hyeonstorage.tistory.com/180

* 상속을 설계할 때 고려할 사항

 

(1) 모든 상속은 is-a 관계이어야 한다. 자식은 부모보다 더 구체적인 버전이어야 한다.

(2) 재사용과 미래의 재사용이 가능하도록 클래스 계층구조를 설계한다.

(3) 고려중인 도메인에서 클래스와 객체가 판별됨에 따라 그들의 공통점을 찾는다. 공통적인 기능들을 클래스 계층구조에서 일관성과 유지 용이성이 적절한 만큼 가능한 높이 위치시킨다.

(4) 메소드를 자식의 기능에 맞도록 적절하게 오버라이딩한다.

(5) 필요한 만큼 자식 클래스에 새로운 변수를 추가한다. 그러나 상속된 변수를 재정의 하지 않는다.

(6) 각 클래스가 자신의 데이터를 관리하도록 한다. 따라서 필요하다면 부모의 구성자를 호출하거나 오버라이딩 된 메소드를 호출하는 데 super를 사용한다.

(7) 여러 역할을 하는 클래스를 생성하는데(다중 상속이 필요할 때) 인터페이스들을 사용한다.

(8) 미래에도 유용할 수 있도록 응용의 요구에 부합하는 클래스 계층구조를 설계한다.

(9) 현재 사용하지 않더라도 toString 이나 equals 같은 일반적인 메소드들은 상속된 버전이 나중에 의도하지 않은 문제를 야기하지 않도록 자식 클래스에서 적절하게 재정의한다.

(10) 계층구조에서 하위에 있는 구체적 클래스들을 위하여 공통적인 클래스 인터페이스를 명시하는 데 추상 클래스를 사용한다

(11) 캡슐화를 위반하지 않고 파생 클래스에서 필요한 접근을 하도록 final 상수를 주의 깊게 사용한다.


 

반응형

'차근차근 > JAVA JSP' 카테고리의 다른 글

java.io.ioexception  (0) 2014.07.26
자바 인터페이스  (0) 2014.07.26
is a 와 has a  (0) 2014.07.26
java controller , java servlet 차이??  (0) 2014.07.26
request , response  (0) 2014.07.26