백엔드/Java

[Java] 인터페이스(interface)

an_apricot__ 2021. 3. 16. 11:09

추상메소드만 포함된 클래스

상속을 위해 만들어짐

어차피 추상메소드만 쓰이는 곳으로 메소드 앞에 abstract를 붙이지 않아도 됨

추상메소드를 상속받은 클래스에서는 반드시 메소드를 오버라이딩 해야 함

클래스는 단 하나만 상속받을 수 있지만, 인터페이스는 여러 개 상속받을 수 있음

 

public class Aaa extends Bbb implements Ccc, Ddd {

... (생략) ...

}

 

생성자가 있지만 abstract 클래스이므로 스스로 new로 객체를 생성할 수 없다.

 

 

interface 

java.awt.event - interface MouseListner 의 메소드...

마우스리스너 인터페이스를 implements하려면 MouseListner의 모든 메소드를 오버라이딩해야한다.

메소드를 많이 가지고 있는 인터페이스를 가지고 있을 경우, 모든 메소드를 오버라이딩해야하므로 번거롭다

이를 해결하기 위해 미리 오버라이딩해둔 class가 만들어져있다.

단, 클래스는 하나만 상속받을 수 있으므로 이를 유의하여 사용해야한다!!

 

 

java.awt - class Frame - setVisible .. 어? 해당 클래스에 없네?.. 그럼 부모 클래스에 가서 찾아볼까?.. 찾아보니.. 있네..!

Methods inherited from class java.awt.Window

 

 

java.awt - class Frame의 조상인 Component Class 의 add 메소드 : 컴포넌트를 상속받은 객체들을 모두 파라미터에 넣을 수 있음~~ Component 들어가서 서브클래스로 뭐가 달려있는지 확인해보기