반응형
1절 인터페이스
1. 인터페이스 OX 문제
① O
② X
③ O
④ O
2.
① O
② O
③ X
④ O
3.
<인터페이스>
interface Soundable {
// 추상 메소드
public abstract String sound();
}
<객체 클래스>
class Cat implements Soundable{
@Override
public String sound() {
return "야옹";
}
}
class Dog implements Soundable {
@Override
public String sound() {
return "멍멍";
}
}
<실행 코드>
public class SoundableExample {
private static void printSound(Soundable soundable) {
System.out.println(soundable.sound());
}
public static void main(String[] args) {
printSound(new Cat());
printSound(new Dog());
}
}
<출력 결과>
야옹
멍멍
2절 타입 변환과 다형성
1. 인터페이스 타입 변환 OX 문제
① O
② X -> 상속 받은 자식 클래스는 인터페이스 구현하는 것 까지 상속 받는다. 따라서 자동 타입 변환 가능
③ O
④ O
2. 다형성 OX문제
① O
② O
③ X -> 자식 클래스로 만든 객체도 대입 가능
④ O
3.
<인터페이스>
interface DataAccessObject {
public void select();
public void insert();
public void update();
public void delete();
}
<구현 클래스 1>
class OracleDao implements DataAccessObject {
public void select() {
System.out.println("Oracle DB에서 검색");
}
public void insert() {
System.out.println("Oracle DB에 삽입");
}
public void update() {
System.out.println("Oracle DB를 수정");
}
public void delete() {
System.out.println("Oracle DB에서 삭제");
}
}
<구현 클래스 2>
class MySqlDao implements DataAccessObject {
public void select() {
System.out.println("MySql DB에서 검색");
}
public void insert() {
System.out.println("MySql DB에 삽입");
}
public void update() {
System.out.println("MySql DB를 수정");
}
public void delete() {
System.out.println("MySql DB에서 삭제");
}
}
<실행 클래스>
public class DaoExample {
// 매개값으로 인터페이스 타입을 받는 메소드 dbWork() 선언
public static void dbWork(DataAccessObject dao) {
dao.select(); // 인터페이스 내의 메소드 호출
dao.insert();
dao.update();
dao.delete();
}
public static void main(String[] args) {
dbWork(new OracleDao()); // 매개값으로 OracleDao 객체를 넣어줌
dbWork(new MySqlDao()); // 매개값으로 MySqlDao 객체를 넣어줌
}
}
<출력 결과>
Oracle DB에서 검색
Oracle DB에 삽입
Oracle DB를 수정
Oracle DB에서 삭제
MySql DB에서 검색
MySql DB에 삽입
MySql DB를 수정
MySql DB에서 삭제
반응형
'🤼♂️ 5. Project > 5-2 연습문제 풀이' 카테고리의 다른 글
[혼자공부하는자바] 10장 예외 처리 (0) | 2021.08.11 |
---|---|
[혼자공부하는자바] 9장 중첩 클래스와 중첩 인터페이스 (0) | 2021.08.11 |
[혼자공부하는자바] 7장 상속 (0) | 2021.08.06 |
[혼자공부하는자바] 6장 클래스 (0) | 2021.08.02 |
[혼자공부하는자바] 5장 참조타입 (0) | 2021.07.30 |
댓글