개발/자바

Java - Interface

웅'jk 2023. 1. 25. 11:06

인터페이스는 자바에서 여러가지 클래스를 상속할 수 없는 문제를 해결하고자 만든 추상적 형태입니다.

 

부모 클래스에서는 필요없지만 자식클래스에서는 필요할 수 있는 기능이기 때문에 만들어졌으며,

이 인터페이스는 모두 abstract 메소드 와 상수 만을 가지게 됩니다.

 

예제

public interface Card {
	/* 인터페이스는 클래스가 아니다.
	 * 멤버 변수가 없습니다.
	 * 단. constant(상수) 와 정적변수(static)는 가능하다.
	 * 상수란? 변수가 아닌 변하지 않는 값을 지정하는 방법이다. ( 메모리 구조에서 데이터 영역에 저장된다.)
	 */
	
	// 정적변수
	public static final int CLOVER = 1;
	public static final int HEART = 2;
	public static final int DIAMOND = 3;
	public static final int SPADE = 4;
	
	String getCardNumber();
	void print();
}
public interface Player {
	
	public void play(String name);
	
	public void end();
	
	
}

 

public class MyCard implements Card ,Player {
	String cardNumber;

	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}
	
	@Override
	public String getCardNumber() {
		return this.cardNumber;
	}

	@Override
	public void print() {
		System.out.println("내 카드 숫자는 : " + cardNumber);
		
	}

	@Override
	public void play(String name) {
		# 필요한 기능
	}

	@Override
	public void end() {
		# 필요한 기능
	}

}

Mycard 는 Card와 Player 두가지를 구현하고 있습니다.

 

부모인 card 에서는 필요하지 않으나, 자식인 Mycard 에서는 Player 라는 기능또한 필요하기에 두가지 모두 상속을 받아야 하나 card 와 player가 class 로 정의되어있다면 한가지밖에 상속이 안되기 때문에 interface로 만들어 상속을 받게 됩니다.

'개발 > 자바' 카테고리의 다른 글

Java - HashMap  (0) 2023.01.25
Java - ArrayList  (0) 2023.01.25
Java - 문자열 처리 함수  (0) 2023.01.25
Java - wrapper class (Integer,Float 등등)  (0) 2023.01.25
Java - abstract class / method  (0) 2023.01.20