티스토리 뷰

JAVA 160613 interface, implements

클래스(interface, implement)



extendsimplements의 차이


1.

상속구현의 차이가 있다.

class A extends B는 A에게 B를 상속하는 것이고,

class A implements는 A에게 B를 구현하는 것이다.


2.

extends 일반클래스 abstract클래스로부터 상속받고

implements interface로부터 구현한다.


3.

extends는 하나의 클래스로부터 상속받을 수 있고,

implements는 여러개의 클래스를 구현할 수 있다.


public class A extends B

public class A implements B, C, D 



4.

extends는 abstract로 무조건 override해야하는 메소드 외에는 부르지 않아도 되는데,

implements를 사용할 때에는 상속(구현)받는 클래스내 존재하는 모든 메소드를 override해야 한다.




interface


implements


메소드 이름을 하위클래스에서 강요.


다형성때문에 추상메소드를 사용.




public interface Volume {

void volumeUp(int level); //public abstract void volumeUp(int level);

}


인터페이스는 public abstract가 생략된다.



<그림표시>


상속 <-------->

구현 <- - - - - >





검색, 자세히 알아볼 용어

static / default void~ / 람다 / for문(? ?:?)형식

Listener // WindowListener // event + handler




Interface끼리는 상속이 가능하다.

Interface에선 일반메소드는 불가능, default나 static 사용.




아답터클래스


<참고>



public abstract class FlyerAdapter implements Flyer{ …


아답터클래스는 자기 스스로 new 할 수 없도록 추상클래스가 되어버림.


아답터클래스는 만들면 쓰지 않는 메소드까지 불러야하는 인터페이스의 불필요함을 줄이기 위해

인터페이스를 일반 상위클래스로 바꿔(?)주는 역할.



 public class MyFrame4 extends WindowAdapter {

private Frame frame;


'WindowAdapter'는 미리 짜여져있는 Window 아답터!!!!

'private Frame frame;'는 addWindowListener를 부르기 위한...




<일단 올려보는 WindowListener와 MouseListener>






중첩 클래스 or 내부 클래스(쉽게 이해하기(?))




public class A{

     class B{


     }

}


인스턴스 멤버 클래스

A라는 클래스 안에서만 사용하고 싶을때 만듬.

A에서 extends를 하나밖에 못하니, 또 하고 싶은게 있을때

B에서 extends를 선언해준다. 그럼 둘 다 사용 가능하다.




static class C{

    public C(){

 

   }

정적 멤버 클래스




class A{

   void B

   static C

}

1.  C c = new C();

2.  A a = new A();

    A.B b = a.new B();

3.  A.C c = new A.C();


메소드를 부를 때의 차이. (정적인 메소드와 일반메소드 차이)

1. static메소드인 C은 정적메소드로써 부를때 독립(?)적으로 부를 수 있다.

2. 일반 메소드인 B는 어디에 속해있는지 찬찬히 다 따져봐야한다.

3. 1번과 같은 결과이며, 이렇게 표기해도 사용할 수 있다.



<참고>

인스턴스 멤버 클래스정적 멤버 클래스 객체 생성




내부클래스 생성시








'📁 공부정리 > JAVA' 카테고리의 다른 글

JAVA 160615 1  (1) 2016.06.15
JAVA 160614  (0) 2016.06.14
for문 기본개념  (1) 2016.06.13
JAVA 설치 방법 참고사이트  (0) 2016.06.13
접근 제한자와 멤버필드 정리  (0) 2016.06.10

Recent Comments