[펌] http://www.cyworld.com/listentossoo/272880
interface는 추상클래스와 성격이 비슷하다.
추상메소드를 갖는것, 객체를 생성할 수 없는 것, 상속받은 서브클래스에서 메소드 정의 해주는 것 등.
static 메소드는 올수 없고, 메소드는 기본적으로 public성질을 갖고 있다. 그러므로 오버라이딩 하여 쓸 때에는 public을 꼭 써주어야 한다.
interface 에서 선언한 멤버필드는 상수이다.
(public static final)의 속성을 갖고 있다.
차이점 : interface는 다중상속, 추상클래스는 단일 상속
추상클래스에선 일반 메소드의 구현이 가능 하지만 interface 에서는 오직 메소드 선언만 가능
서브클래스에서 메소드를 모두 오버라이딩 해주지 않으며 그 클래스는 abstract선언을 해 주어야 한다.
interface로 선언된 클래스를 일반 클래스가 상속 받을 때
implements를 사용한다.
interface끼리의 상속은 extends를 사용한다
예>
interface A {
//이곳에 정의된 필드는 정의 하지 않아도 상수속성(public, static,fianl)을 갖는다.
public String methodA(String s);
} // interface는 다중상속이 가능하다. 추상메소드와 같이 메소드 선언만 한다
class Kor implements A //interface의 상속 지정어 implements
//interface class에 선언된 메소드를 여기서 전부 구현해 놓지 않으려면 이 클래스를 추상클래스로 선언해 두어야 한다.
{
public String methodA(String g) { //상속받은 메소드 실질 구현( 오버라이딩 )
return g + "반갑다 ";
}
}
public class Ame
{
public static void main(String args[]){
A a = new Kor(); //다형성 -부모값부터 찾고 존재하면 자식것을 가져온다. 부모에 값이 없으면, Error, 부모에 있고 자식에 없으면 부모것을 가져옴.
String h = a.methodA("안녕 ");
System.out.println(h);
}
};
'Linux 일반 > Programming' 카테고리의 다른 글
Android - Button & Image ( 버튼을 이용한 이미지출력 ) (0) | 2011.12.07 |
---|---|
Unable to start activity ComponentInfo 에러 (0) | 2011.12.06 |
Java Interface 특징과 사용방법 (0) | 2011.12.01 |
androidmenifest.xml permission 종류 (0) | 2011.11.28 |
C와 JAVA 구조체 비교 (0) | 2011.11.23 |