JAVA-Interface

1 minute read

자바의 인터페이스: 공동 작업시 충돌을 방지하기 위하여 작성

Parent Type Format 사용 이유 다중 상속
ClassChild extends Parent공통된 특성 재사용O
InterfaceChild implements Parent공동 작업시 충돌 방지X



공동 작업시 충돌 방지라는 것은 변수와 Method를 미리 선언하여 변경 불가하게 만든다는 뜻이다. 변수의 경우 Final Type으로 선언하여 값을 변경 불가능 하게 한다.
Type 앞에 붙일 수 있는 것은 Static과 Final이 존재한다.

  1. Static: 메모리에 고정하여 모든 객체가 공유하는 자원

  2. Final: 변수가 한번 선언되면 변경 불가능한 자원

Method의 경우 선언만 해주고 내용은 물려받은 Child에서 정의하게 된다.
정의한 Method를 Overriding 하지 않으면 Error가 나오게 된다. 이러한 이유로 실제 Project에서 Project 관리하는 사람이 꼭 필요한 기능을 정의하고 팀원들에게 배포하는 형식을 취할 때 많이 사용하게 된다.

//Parent.java

public interface Parent {
	/*
	Interface 에서 변수선언은 final 로서 변하지 않게 선언해 주어야 한다.
	final 로 선언하게 되면 값이 변하지 않는 특성을 가지게 된다.
	*/
	public final String name="Kim";
	
	//자바에서 Method는 내용을 선언하지 않고 선언만 해준다.

	public void setName(String name);
	public String getName();
}

//Parent2.java

public interface Parent2 {
	/*
	Interface 에서 변수선언은 final 로서 변하지 않게 선언해 주어야 한다.
	final 로 선언하게 되면 값이 변하지 않는 특성을 가지게 된다.
	*/
	public final String name="Kim";
	
	//자바에서 Method는 내용을 선언하지 않고 선언만 해준다.

	public void setName(String name);
	public String getName();
}

//Child.java

/*
Interface를 상속받는 경우는 implements로서 상속받게 된다.
Interface의 장점은 다중 상속이 가능하다.
 */
public class Child implements Parent,Parent2{
	String name;
	
	public static void main(String[] args) {
		System.out.println("Interface");
		//Parent.name="Hwang" Parent에서 Final로 정의되어있어 값을 변경 할 수 없다.

		System.out.println(Parent.name);
		//Interface, Kim

	
	}


	
	//Interface에서 정의한 Method는 반드시 Child Class에서 정의하여야 한다.

	@Override
	public String getName() {
		return name;
	}
	
	@Override
	public void setName(String name) {
		this.name = name;
	}

}



참조: 원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.

Categories:

Updated:

Leave a comment