다형성-인터페이스

1.인터페이스


- 추상클래스들 중 오로지 추상메소드로만 이루어져있는 추상클래스를 말한다.

- 골격이라는 개념이며, 추상메소드로만 이루어져 있다.(내용이 있는 구현된 메소드를 넣을 수 없다.)

 

- 인터페이스는 implements를 이용해서 추상 메서드를 구현한다.


-인터페이스 선언. Test.java
1
2
3
4
5
public interface Test {
    void a1();
    void a2();
 


-인터페이스 상속. Test1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Test1{
    public static void main(String args[]){
        new Test2().a1();
        new Test2().a2();        
        new Test3().a1();
        new Test3().a2();
    }
}
class Test2 implements Test{
    @Override
    public void a1(){
        System.out.println("Test2의 a1입니다.");
    }
    @Override
    public void a2() {
        System.out.println("Test2의 a2입니다.");        
    }
}
class Test3 implements Test{
    @Override
    public void a1(){
        System.out.println("Test3의 a1입니다.");
    }
    @Override
    public void a2() {
        System.out.println("Test3의 a2입니다.");        
    }
}

-결과

 

Test2의 a1입니다.
Test2의 a2입니다.
Test3의 a1입니다.
Test3의 a2입니다.

 

-인터페이스도 추상클래스와 마찬가지로 모든 추상메소드내용을 정의해야 객채 생성이 가능하다.

인터페이스를 상속받아 추상 메소드를 전부 구현하지 않고 일부만 구현하면 추상클래스가 된다.

 

- 인터페이스는 final static 변수(상수 변수)를 가질 수 있다.

- 상수 변수는 전역적이며, 값 수정이 불가능 하다.



2.다중상속.


- 자바는 다중상속이 유용함에 불구하고 다중상속으로 인해 나타나는 문제점으로 인해 다중상속을 금지하고 있다.

*일부가 구현된 메소드를 가진 추상클래스를 각각 A, B가 상속받아 클래스를 구현하였다.

 클래스 C가 동시에 A와 B를 다중상속을 받게 되면 추상클래스에서 일부 구현된 메소드가 중복되게 된다.

(같은 이름과 같은 매개변수가 있는 메소드 2개를 동시에 가지게 된다.)

-...


'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글

내부클래스  (0) 2013.10.04
다형성 - 업캐스팅, 다운캐스팅  (0) 2013.10.02
다형성-추상클래스  (0) 2013.10.01
추상클래스, 인터페이스  (0) 2013.10.01
커넥션 풀  (0) 2013.09.30

댓글()