Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

archive

[이것이 자바다] 08 인터페이스 -2 본문

Java/Java 개념 정리

[이것이 자바다] 08 인터페이스 -2

안정민 2023. 5. 30. 11:14

1. 인터페이스 상속

- 인터페이스도 다른 인터페이스를 상속할 수 있으면, 클래스와는 달리 다중 상속을 허용한다.

-다음과 같이 extends 키워드 뒤에 상속할 인터페이스들을 쉼표로 구분해서 나열하면 된다.

public interface 자식인터페이스 extends 부모인터1, 부모인터2 {...}

- 자식 인터페이스의 구현 클래스는 자식 인터페이스의 메소드 뿐만 아니라 부모 인터페이스의 모든 추상 메소드를 재정의해야한다.

-구현 객체는 자식 및 부모 인터페이스 변수에 대입이 가능하다

-구현 객체가 자식 인터페이스 변수에 대입되면 자식 및 부모 인터페이스의 추상 메소드를 모두 호출할 수 있으나, 부모 인터페이스 변수에 대입이 된다면 부모 인터페이스에 선언된 추상 메소드만 호출이 가능하다.

 

 

 

2. 타입 변환

-인터페이스의 타입 변환은 인터페이스와 구현 클래스 간에 발생

-인터페이스 변수에 구현 객체 를 대입하면 구현 객체는 인터페이스 타입으로 자동 타입 변환된다. 반대로 인터페이스 타입을 구현 클래스 타입으로 변환시킬 수 있는데, 이 때는 강제 타입 변환이 필요하다.

 

(1) 자동 타입 변환 - promotion

-자동 타입 변환은 의미 그대로 자동으로 타입 변환이 일어나는 것을 이야기함

-인터페이스 타입의 변수에 구현 객체를 대입하면 자동 타입 변환이 일어나고, 부모 클래스가 인터페이스를 구현하고 있다면 자식 클래스도 인터페이스 타입으로 자동 타입 변환할 수 있음

인터페이스 변수 = 구현객체; // 자동타입변환

 

(2) 강제 타입 변환 - casting

- 강제 타입 변환은 캐스팅 기호를 사용해서 인터페이스 타입을 구현 클래스 타입으로 변환시키는 것을 말한다. 

-구현 객체가 인터페이스 타입으로 자동 변환되면, 인터페이스에 선언된 메소드만 사용이 가능, 자동 타입 변환 이후 인터페이스 외에 구현 객체에 구현된 메소드를 호출하여 사용하고 싶다면 캐스팅 기호를 사용해서 원래틔 구현 객체 타입으로 강제 타입 변환을 해야 함

 

 

3. 다형성

-인터페이스 또한 다형성을 구현하는 주된 기술로 사용

-다형성이란 사용 방법은 동일하지만 다양한 결과가 나오는 성질을 이야기한다.

-상속의 다형성과 마찬가지로 인터페이스 역시 다형성을 구현하기 위해 재정의와 자동 타입 변환 기능을 이용한다.

-인터페이스의 추상 메소드는 구현 클래스에서 재정의를 해야 하며, 재정의되는 내용은 구현 클래스마다 다름, 구현 객체는 인터페이스 타입으로 자동 타입 변환이 되고, 인터페이스 메소드 호출 시 구현 객체의 재정의딘 메소드가 호출이 되어 다양한 실행 결과를 얻을 수 있다

 

(1) 필드의 다형성

-