JAVA

이것이 자바다 8장 확인 문제 풀이 (인터페이스)

Adev 2022. 9. 8. 20:32

1. 인터페이스 - 객체의 사용법을 정의한 타입으로 개발 코드와 객체가 서로 통신하는 접점 역할을 한다.
답 : 3
인터페이스는 인스턴스 필드 또는 정적 필드를 선언할 수 없다. 데이터를 저장할 수 없기 때문이다.
//클래스는 필드, 생성자, 메소드를 구성 멤버로 가지는데 비해, 인터페이스는 상수와 메소드만 구성 멤버로 가진다.
 


2. 인터페이스의 다형성 - 프로그램 소스 코드는 변함이 없는데, 구현 객체를 교체함으로써 프로그램의 실행 결과가 다양해진다.
답 : 4
구현 객체가 인터페이스 타입으로 변환되는 것은 자동 타입 변환에 해당한다.
//구현 객체가 인터페이스 타입으로 자동 변환하면 인터페이스에 선언된 메소드만 사용가능하다. 구현 클래스에 선언된 필드와 메소드를 사용해야 할 경우에는 강제 타입 변환을 해서 다시 구현 클래스 타입으로 변환한다.

 


3. 

package verify.exam03;

public class Cat2 implements Soundable {
	@Override
	public String sound() {
		return "야옹";
	}
}
package verify.exam03;

public class Dog2 implements Soundable {
	@Override
	public String sound() {
		return "멍멍";
	}
}

 

 

4. 

package verify.exam04;

public interface DataAccessObject2 {
	public void select();
	public void insert();
	public void update();
	public void delete();
}
package verify.exam04;

public class OracleDao2 implements DataAccessObject {

	@Override
	public void select() {
		System.out.println("Oracle DB에서 검색");
	}

	@Override
	public void insert() {
		System.out.println("Oracle DB에 삽입");
	}

	@Override
	public void update() {
		System.out.println("Oracle DB를 수정");
	}

	@Override
	public void delete() {
		System.out.println("Oracle DB에서 삭제");
	}
}
package verify.exam04;

public class MySqlDao2 implements DataAccessObject {

	@Override
	public void select() {
		System.out.println("MySql DB에서 검색");		
	}

	@Override
	public void insert() {
		System.out.println("MySql DB에 삽입");
	}

	@Override
	public void update() {
		System.out.println("MySql DB를 수정");		
	}

	@Override
	public void delete() {
		System.out.println("MySql DB에서 삭제");
	}
}

 

 

5. 익명 구현 객체 - 소스 파일을 만들지 않고 사용하는 구현 객체이다.

package verify.exam05;

public class ActionExample2 {
	public static void main(String[] args) {
		Action action = new Action() {
			@Override
			public void work() {
				System.out.println("복사를 합니다.");
			}
		};
	action.work();
	}
}