인터페이스(interface)

자바 2020. 6. 27. 16:20

인터페이스

- 인터페이스는 추상 메서드로만 구현되어 있는 것을 가리킨다

 

- 자바에서는 단일 상속만 지원을 하므로 추상 클래스를 하나 이상 상속받을 수 없다

 

- 자바에서는 인터페이스를 통해 반드시 구현해야 할 메서드를 동시에 여러 개를 구현할 수 있다

 

- 인터페이스는 다중 상속을 지원하기 위해서 제공하는 것이 아니라 하나의 클래스를 여러 종류의 참조 변수를 통해 접근할 수 있고 메서드를 호출할 수 있도록 지원되는 개념이다

 

- 인터페이스에 정의된 메서드는 모두 추상 메서드이며 변수는 static final 변수이다

 

- 메서드를 선언할 때 abstract 키워드를 붙이지 않아도 추상 메서드로 간주한다

 

- 변수에 static final을 붙이지 않아도 static final로 간주한다

 

인터페이스의 작성

interface 인터페이스 이름 {

변수 선언

메서드 선언

}

 

인터페이스의 구현

class 클래스 이름 extedns 부모 클래스 implements 인터페이스1, 인터페이스2 {

}

* 상속받을 클래스가 없을 경우 extends 부모 클래스는 생략

 

interface 만드는 방법

defaultpackage에서 interface 생성

 

InterfaceTest.java

--------------------------------------------------------------------------------------------------

TestCalss t = new TestClass( );

 

t.methodA( );

t.methodB( );

 

System.out.println(t.a);

System.out.println(t.b);

 

InterA ia = new TestClass( ):

InterB ib = new TestClass( );

 

ia.methodA( );

ib.methodB( );

 

System.out.println(InterA.a);

System.out.println(InterB.b);

 

class TestClass implements InterA, InterB {

    @Override

    public void methodA( ) {

         // TODO Auto-generated method stub

         System.out.println("InterA의 메서드");

    }

 

    @Override

    public void methodB( ) {

         // TODO Auto-generated method stub

         System.out.println("InterB의 메서드");

}

 

class TestClass2 implements InterC{

 

    public void methodc( ) {

 

    }

 

    @Override

    public void methodA( ) {

         // TODO Auto-generated method stub

 

    }

}

--------------------------------------------------------------------------------------------------

 

Console

--------------------------------------------------------------------------------------------------

InterA의 메서드

InterB의 메서드

10

20

InterA의 메서드

InterB의 메서드

10

20

--------------------------------------------------------------------------------------------------

 

InterA.java

--------------------------------------------------------------------------------------------------

int a = 10;

 

public void methodA( );

--------------------------------------------------------------------------------------------------

 

InterB.java

--------------------------------------------------------------------------------------------------

int b = 20;

 

public void methodB( );

--------------------------------------------------------------------------------------------------

 

InterC.java

--------------------------------------------------------------------------------------------------

int c = 30;

 

public void methodC( );

--------------------------------------------------------------------------------------------------

'자바' 카테고리의 다른 글

스레드 우선 순위  (0) 2020.06.28
스레드(thread)  (0) 2020.06.27
추상 클래스  (0) 2020.06.26
중첩 클래스  (0) 2020.06.25
Final  (0) 2020.06.23
Posted by khon98
,