728x90
1. 자바 인터페이스
1-1. 자바의 인터페이스
- 추상 메소드와 상수로만 이루어진 정의
- 추상클래스와 비슷하지만 필드나 일반 메소드 정의 불가
1-2. 인터페이스의 멤버
- 인터페이스의 메소드 : public abstact 타입, 생략 가능
- 인터페이스의 상수 : public static final 타입, 생략 가능
1-3. 인터페이스의 사용
- 인터페이스로 바로 생성 불가능 (익명 클래스 형태로 생성 가능)
- 상속을 통해서 사용
- 다중 상속이 가능
- 클래스간의 기능적 요소를 주고받기 위해 주로 사용
1-4. 인터페이스 다중 상속
- 서브 클래스는 수퍼클래스 하나만 상속 가능
- 서브 클래스는 인터페이스를 여러개 상속 가능
1-5. 인터페이스 정의
- 인터페이스 이름은 클래스와 동일한 룰을 사용
- 영역안에 클래스와 같은 방식으로 추상메소드와 정적 상수만 정의
- 기본적으로 외부에서 접근으로 사용하므로 접근자는 public
- abstract public 생략가능
- public statc final 생략 가능
- 인터페이스의 실행 클래스 내부에서 정의하는 것이 좋음
public interface OnDealing{
int code = 100;
abstact public boolean onAgreement();
void onDeal(int dealPrice);
}
1-6. 인터페이스 사용
- implements 상속을 통해서 인터페이스 생성 또는 익명클래스로 생성
- 추상메소드는 반드시 오버라이딩 되어야함.
public class Seller extends Member implements
onDealing{
// 생략
@Override
public boolean onAgreement(){
// 코드
return true;
}
@Override
public void onDeal(int dealPrice){
setPoint(dealPrice);
}
}
- 클래스의 다형성을 실현
- 개발자를 위한 표준 틀을 제공
- 클래스간 이벤트의 통신
1-7. 인터페이스 메소드 실행
- 인터페이스 상속 인스턴스 또는 추상 클래스의 인스턴스를 실행 클래스에 제공
- setter 활용 추천
- 실행 클래스에서 인터페이스의 메소드를 실행
public class DealButton{
OnDealing onDealing;
public void setOnDealing(OnDealing onDealing){
this onDealing = onDealing;
}
public DealButton(){
}
// 거래 승인 버튼 클릭
public void agreement(){
onDealing.onAgreement()'
}
public void deal(int dealPrice){
onDealing.onDeal(dealPrice);
}
}
Seller seller = new Seller(1, "다팔아");
DealButton seller Deal = new DealButton();
sellerDeal.setOnDealing(seller);
sellerDeal.agreement();
sellerDeal.deal(8000);
반응형
'Java 개념' 카테고리의 다른 글
리스트 (0) | 2023.08.03 |
---|---|
예외처리 (0) | 2023.08.01 |
final, Enum(열거형) (0) | 2023.07.03 |
참조 (0) | 2023.07.03 |
다형성과 super (0) | 2023.07.02 |