인터페이스 자체가 아닌 인터페이스를 구현한 클래스로 객체(인스턴스)를 생성할 수 있다.
디폴트 메소드는 구현 클래스에서 재정의할 수 있다
.
구현 객체는 인터페이스 타입으로 자동 타입 변환된다.
implements Remocon
@Override
public void powerOn() {
System.out.println("TV를 켰습니다.");
}
public class Cat implements Soundable {
@Override
public String sound() {
return "야옹";
}
}
public class Dog implements Soundable {
@Override
public String sound() {
return "멍멍";
}
}
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 MySqlDao 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에서 삭제");
}
}
a instanceof C c