일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- JAVA 기초
- 스프링 입문강의
- 인프런
- 트리 지름 구하기
- 3장 확인문제
- Til
- 웹개발 기본지식
- 조건문과 반복문
- 객체지향
- 이노캠
- 백준
- 이것이 자바다
- 이노베이션캠프
- BFS
- dfs
- Java
- 자바 언어 기초
- 이것이 자바다 확인문제
- 이것이 자바다 연습문제
- ArrayList 개념
- 챗GPT 명령어 작성팁
- ChatGPT
- Comparable과 Comparable
- 이노베이션 캠프
- 자료구조
- 자바
- 자바의 정석 6장
- 채팅GPT
- 이노베이션캠프 동북
- 이것이 자바다 13장
- Today
- Total
기록공간
[JAVA] 이것이 자바다 8장 확인 문제 (인터페이스) 본문
1. 인터페이스에 대한 설명으로 틀린 것은 무엇입니까?
1) 인터페이스로 객체(인스턴스)를 생성할 수 있다.
2) 인터페이스는 다형성의 주된 기술로 사용된다.
3) 인터페이스를 구현한 객체는 인터페이스로 동일하게 사용할 수 있다.
4) 인터페이스를 사용함으로써 객체 교체가 쉬워진다.
답: 1) 인터페이스는 상수 필드와 메소드 필드만 생성 할 수 있다.
2. 인터페이스의 구성 멤버에 대한 설명으로 틀린 것은 무엇입니까?
1) 인터페이스는 인스턴스 필드가 없고 상수를 멤버로 가진다.
2) 추상 메소드는 구현 클래스가 재정의해야 하는 멤버이다.
3) 디폴트 메소드는 구현 클래스에서 재정의할 수 없다.
4) 정적 멤버는 구현 객체가 없어도 사용할 수 있는 멤버이다.
답: 3) 디폴트 메소드는 구현 클래스에서도 재정의 가능하다.
3. 인터페이스 다형성에 대한 설명으로 틀린 것은 무엇입니까?
1)필드가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다.
2)매개변수가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다.
3)배열이 인터페이스 타입일 경우 다양한 구현 객체를 저장할 수있다.
4)구현 객체를 인터페이스 타입으로 변환하려면 강제 타입 변환을 해야한다.
답: 4) 강제 타입변환이란, 캐스팅 기호를 사용해서 인터페이스 타입을 구현 클래스 타입으로 변환 시키는 것을 말한다.
Ex) RemoteControl rc = new Television() // 인터페이스 타입 변수에 구현 객체를 생성해서 해당 주소를 반환하여 저장
Television tv = (Television) rc // 인터페이스 타입 변수를 구현 클래스 타입으로 변환 이것이 강제 타입 형 변환
4.인터페이스 A를 B와 C가 구현하고 B를 상속해서 D 클래스를, C를 상속해서 E 클래스를 만들었습니다. 다음 빈칸에 들어올 수 있는 것을 모두 선택하세요.
//메소드 선언
void method(A a) { ... }
//메소드 호출
method( )
답) new B(), new C(), new D() , new E() 모두 가능 (부모 클래스가 인터페이스를 구현하고 있다면 자식 클래스도 인터페이스 타입으로 자동 타입 변환될 수 있다.)
5. Tv 클래스를 실행했을 때 "TV를 켰습니다."라고 출력되도록 밑줄과 박스에 들어갈 코드를 작성해보세요.
public interface Remocon { public void powerOn(); }
public class TV implements Remocon {
@Override
public void PowerOn() {
System.out.println("TV를 켰습니다.");
}
public static void main(String[] args) {
Remocon r = new TV; r.powerOn(); }}
6. Soundable 인터페이스는 다음과 같은 sound() 추상 메소드를 가지고 있습니다. SoundableExample 클래스의 printSound() 메소드는 매개변수 타입으로 Soundable 인터페이스를 가집니다.printSound()를 호출할 때 Cat과 Dog 객체를 주고 실행하면 각각 "야옹"과 "멍멍"이 출력되도록 Cat과 Dog 클래스를 작성해보세요.
public interface Soundable { public String sound(); } public class SoundableExample { public static void printSound(Soundable soundable) { System.out.println(soundable.sound()); }
public static void main(String[] args) { printSound(new Cat()); printSound(new Dog()); }
public class Cat implements Soundable {
@Override
public String sound() {
return "냐옹"; }
}
public class Dog implements Soundable {
@Override
public String sound() {
return "멍멍"; }
}
7. DaoExample 클래스의 main() 메소드에서 dbWork() 메소드를 호출할 때 OracleDao와 MysqlDao 객체를 매개값으로 주고 호출했습니다. dbWork() 메소드는 두 객체를 모두 매개값으로 받기 위해 DataAccessObject 타입의 매개변수를 가지고 있습니다. 실행 결과를 보고 DataAccessObject 인터페이스와 OracleDao, MySqlDao 구현 클래스를 각각 작성해보세요.
public Interface DataAccessObject {
//추상 메소드 정의
public void select();
public void insert();
public void update();
public void delete();
}
public class OracleDao 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에서 삭제");
}
}
public class Mysql 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에서 삭제");
}
}
8. 다음과 같이 인터페이스와 클래스가 선언되어 있습니다. action() 메소드를 호출할 때 매개값이 C 객체일 경우에만 method2()가 호출되도록 밑줄에 들어갈 코드를 작성해보세요.
답: a instanceOf C c
'JAVA & Spring' 카테고리의 다른 글
[Java] Comparable, Comparator 인터페이스의 이해와 사용 방법 (0) | 2023.03.16 |
---|---|
[JAVA] 이것이 자바다 9장 확인 문제 (중첩 선언과 익명 객체 ) (0) | 2023.01.08 |
[JAVA] 이것이 자바다 확인 문제 7장 (상속) (0) | 2023.01.03 |
[JAVA] 이것이 자바다 확인문제 6장 (클래스) (0) | 2023.01.02 |
[JAVA] 이것이 자바다 5장 확인 문제 (참조 타입) (0) | 2022.12.30 |