2023. 7. 14. 13:00ㆍJAVA
interface : 완전체 abstract class - 추상메소드만 가지는 추상클래스 문법
멤버변수 사용불가
멤버변수 중에는 오직 final 상수만 사용 가능 - 초기화시 자동 public final 키워드를 붙여줌
모든 멤버의 접근제한자는 public만 가능함
생성자 메소드 사용불가
일반 인스턴스 메소드도 불가
추상메소드를 가짐
자바 7버전에서 새로 허용된 메소드 사용 - static
자바 8버전에서 기능이 있는 메소드를 만들 수 있는 문법을 제공 - default
이너 클래스시 자동 public static 붙여줌
인터페이스는 객체를 곧바로 생성 불가
인터페이스 사용은 이를 상속한 클래스를 설계하고
그 클래스를 객체로 만들어서 사용한다는 것임.
인터페이스 ==> 클래스 상속시 implements(구현) 사용
인터페이스 ==> 인터페이스 상속시 extends 사용
인터페이스의 구현도 상속의 개념이기에 부모-자식 관계는 형성됨
업 캐스팅이 가능하다는 것임.
public interface Test {
public abstract void aaa();
void bbb(); // 자동 public abstract
}
}
public class First implements Test{
//overrride
public void aaa() {
System.out.println("First aaa...");
}
@Override
public void bbb() {
System.out.println("First bbb...");
}
}
public class Second implements Test{
@Override
public void aaa() {
// TODO Auto-generated method stub
System.out.println("Second aaa...");
}
@Override
public void bbb() {
// TODO Auto-generated method stub
System.out.println("Second bbb...");
}
}
public class Main {
public static void main(String[] args) {
Test t= new First();
t.aaa();
t.bbb();
Test t2=new Second();
t2.aaa();
t2.bbb();
}
}
Test 인터페이스를 상속받은 First와 Second클래스를 업 캐스팅 해보면
First aaa...
First bbb...
Second aaa...
Second bbb...
이런식으로 실행이 잘되는것을 볼수있음
다중상속은 안되지만 다중 구현이 가능함. 여러개의 인터페이스 상속가능
다음은 SSS인터페이스와 TTT인터페이스를 동시에 구현하는 Sample클래스임
public interface SSS {
public abstract void aaa();
}
public interface TTT {
public abstract void bbb();
}
public class Sample implements SSS,TTT{
@Override
public void aaa() {
// TODO Auto-generated method stub
}
@Override
public void bbb() {
// TODO Auto-generated method stub
}
}
인터페이스는 클래스와 달리 이런식으로 여러개를 동시에 상속할 수 있음.
'JAVA' 카테고리의 다른 글
| Generic (0) | 2023.07.18 |
|---|---|
| Interface 예제 (0) | 2023.07.14 |
| Abstract (0) | 2023.07.14 |
| Polymorphism(다형성)예제 (0) | 2023.07.13 |
| Polymorphism(다형성) (0) | 2023.07.13 |