티스토리 뷰

JAVA/PRIMER

[JAVA] 인터페이스

yulrang 2018. 4. 19. 14:09
abstract class A{
	final int ONE = 1;				// final : 심볼릭 상수 -> 값을 변경할 수 없음
	
	void method(){
		
	}
	abstract void method1();	// 추상메소드 : 인스턴스를 생성할 수 없음.
								// 상속을 통해 인스턴스화할 수 있음.
}

interface B{
//	int a;						// 필드와 메서드를 정의 할 수 없음.
//	void method(){};
	
	final static int FIVE = 5;	// 심볼릭 상수 선언은 가능
	
	abstract void method1();	// 추상 메소드는 선언 가능
	void method2();				// abstract 수식어는 생략 가능
}

public class 인터페이스1 {

	public static void main(String[] args) {
//		B b = new B();
		// 인터페이스 클래스는 인스턴스 생성 불가
		// 상속을 통해 인스턴스화 해야함
	}

}

class A1 extends A{
	@Override
	void method1(){}
}

class B1 implements B{			// 인터페이스를 상속(구현)할 때는 extends 대신 implements
	// 인터페이스의 추상메소드를 정의할 때는 public으로 접근 지정해야함
	
	@Override
	public void method1(){}
	@Override
	public void method2(){}
}
public class 인터페이스2 {

	public static void main(String[] args) {
		// TODO 자동 생성된 메소드 스텁

	}

}

다중상속
class C{}
class D{}
//class E extends C, D{} 				// 자바는 다중 상속을 허용하지 않음

interface C1{}
interface D1{}
class E1 implements C1,D1{}				// 인터페이스는 다중 상속이 가능
class E2 extends C implements C1,D1{}	// 클래스와 인터페이스를 동시에 상속하는 것도 가능

public class 인터페이스3 {

	public static void main(String[] args) {
		// TODO 자동 생성된 메소드 스텁

	}

}


'JAVA > PRIMER' 카테고리의 다른 글

[JAVA] 중첩클래스  (0) 2018.04.19
[JAVA] 일반화클래스  (0) 2018.04.19
[JAVA] 익명클래스  (0) 2018.04.19
[JAVA] 추상클래스  (0) 2018.04.19
[JAVA] 상속  (0) 2018.04.19
댓글