인터페이스란
 - 표준명세서의 역활
 - 상수와 추상메소드만 존재(abstract는 생략가능)
 - interface를 implements 한 클래스는 반드시 추상메소드를 Override(재구현)해주어야 한다.
 - Override(재구현) 할때 반드시 public를 붙여야 한다.
 - 다중상속이 가능
 - 상속과 같이 쓰일때는 extends, implements 순서로 쓴다.


extends(상속)와 interface(인터페이스) 사용 차이점

1. class B extends A{}                         //참 : 클래스끼리는 extends가 가능하다
2. class B implements InterA{}              //참 : 인터페이스는 클래스에 implements가 가능하다
3. class B implements A{}                    //거짓 : 클래스끼리는  implements 할 수 없다
4. class B extends InterA{}                   //거짓 : 인터페이스는 클래스에 extends 할 수 없다
5. interface InterB  extends A{}              //거짓 : 클래스는 인터페이스에 extends 할 수 없다
6. interface InterB  implements InterA{}   //거짓 : 인터페이스끼리는 implements 할 수 없다
7. interface InterB  implements A{}         //거짓 : 클래스는 인터페이스에 implements 할 수 없다
8. interface InterB  extends InterA{}        //참 : 인터페이스끼리는 extends가 가능하다

은닉화
  : 자바 클래스를 접근하고자 하는 개발자나 사용자로 부터 자바 클래스를 보호(숨김) 시키는 것이다.
    사용자에게는 잘못된 데이터 입력을 방지하고 개발자로부터 필요 없는 정보를 숨겨준다.

캡슐화
  : 데이터와 함수 등 객체와 관련된 것들을 하나로 묶는 것을 말한다. 흔히 정보 은닉과 함께
    연관지어 사용되는 개념으로 외부에서 알 필요가 없는 데이터와 행위는 보이지 않게 한다.

상속
  : 클래스의 기능을 확장하는 여러방법 중 하나로, 기존 클래스를 수정하지 않으면서도 이미 정의되어
    있는 내용을 확장해서 사용할 수 있는 방법을 제공하는 것을 말한다.
    예를 들어 자동차라는 클래스을 A가 상속하여 기능을 추가하고 택시 클래스로 정의하는 것을 말한다.

다형성
  : 오버로딩, 오버라이딩, 상속 등을 복합적으로 사용함으로써 하나로 여러가지 처리를 하는 것을 말한다.
    예를 들어 오버로딩은 하나의 메서드가 여러가지 기능을 포함하고 있는 것을 다형성이라 한다.

추상화
 
 : 인터페이스와 구현을 분리하는 것을 말한다. 추상화를 통해 객체가 가진 특성 중 필수 속성만으로 객체를 
    묘사하고 유사성만을 표현하며 세부적인 상세 사항은 각 객체에 따라 다르게 수현되도록 할 수 있다.

+ Recent posts