인터페이스 와 인터페이스 실현 류,인터페이스 와 추상 류

자바 는 다 중 계승 을 지원 하지 않 습 니 다.즉,하나의 하위 클래스 는 하나의 부모 클래스 만 가 질 수 있 습 니 다.이 부족 함 을 보완 하기 위해 자바 의 인 터 페 이 스 는 다 중 계승 을 실현 할 수 있 고 한 종 류 는 여러 개의 인 터 페 이 스 를 실현 할 수 있다.
인터페이스 정의 및 구현
인터페이스의 정 의 는 인터페이스 성명 과 인터페이스 체 두 부분 을 포함한다.인터페이스 체 는 속성 상수 와 추상 적 인 방법 을 포함한다.
[public] interface     {
	    
	...
	    
	...
	
}

interface 는 인 터 페 이 스 를 설명 하 는 키워드 입 니 다.자바 에서 인터페이스의 속성 은 정적 상수,즉 static 또는 final 형식 으로 만 허용 되 며 인터페이스 에서 의 방법 은 모두 정의 되 지 않 은 추상 적 인 방법 입 니 다.인터페이스 에 서 는 속성 이 든 방법 이 든 모두 기본적으로 Public 형식 입 니 다.implements 로 인 터 페 이 스 를 실현 하 는 것 을 표시 합 니 다.구현 클래스 에서 인터페이스 에서 정 의 된 모든 방법 을 실현 하고 인터페이스 에서 정 의 된 속성 상수 를 사용 할 수 있 습 니 다.그 밖 에 하나의 종 류 는 여러 개의 인 터 페 이 스 를 실현 할 수 있다.예 를 들 어:
package Liu;
interface Action {
	String name = "Liu Yankee";		//   public static final       
	public void walk();
	public void run();
}
class Person implements Action {
	public Person() {
		
	}
	private int age;		//         
	private int birthDate;
	//         walk()
	public void walk() {
		System.out.println(name + " is walking!");
	}
	//         run()
	public void run() {
		System.out.println(name + " is running!");
	}
	//               
	public void love() {
		System.out.println(name + "can fall in love with a beautiful girl!");
	}
}
//   
public class text5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Action  man = new Person();
		man.run();
		man.walk();
	}

}


1)인 터 페 이 스 는 하나의 인용 유형 2)인 터 페 이 스 는 특정한 특징의 약정 3)인터페이스 안의 모든 방법 은 자동 으로 Public abstract 유형 4)인 터 페 이 스 를 통 해 관련 되 지 않 은 똑 같은 행 위 를 실현 할 수 있 으 며 이러한 유형의 차원 관 계 를 고려 하지 않 아 도 된다.따라서 일정한 의미 에서 다 중 계승 5)인 터 페 이 스 를 통 해 여러 가지 실현 해 야 할 방법 을 가리 킬 수 있다.6)인 터 페 이 스 를 통 해 대상 의 상호작용 인 터 페 이 스 를 알 수 있 고 대상 이 대응 하 는 유형 을 알 필요 가 없다.
인터페이스의 특성
우선 인터페이스 가 클래스 와 다른 특성 을 알 아야 합 니 다.1)인터페이스 에 있 는 방법 은 매개 변수 목록 과 반환 유형 이 있 을 수 있 지만 그 어떠한 방법 도 실현 할 수 없습니다.2)인터페이스 에 속성 을 포함 할 수 있 지만 암시 적 으로 static 과 final 형식 으로 밝 혀 져 이 인터페이스의 정적 저장 소 에 저 장 됩 니 다.이 인터페이스 3)인터페이스 에 속 하지 않 는 방법 은 Public 로 밝 혀 지 거나 밝 히 지 않 지만 결 과 는 Public 형식 으로 처리 합 니 다.4)인터페이스 에 있 는 모든 방법 이 실현 되 지 않 으 면 인 터 페 이 스 는 인터페이스(extends 키 워드 를 사용)를 계승 할 수 있 습 니 다.계승 할 때 부모 인터페이스 가 하위 인터페이스 에 전달 하 는 것 은 방법 설명 일 뿐 입 니 다.구체 적 으로 실현 하 는 것 이 아니 라 5)하나의 인 터 페 이 스 는 하나 이상 의 부모 인 터 페 이 스 를 가 질 수 있 고 한 종 류 는 부모 류 를 계승 하 는 동시에 여러 개의 인 터 페 이 스 를 실현 할 수 있다.즉,다 중 계승 을 실현 할 수 있다.
인터페이스 와 추상 류 의 차이
추상 류 는 모든 하위 클래스 의 기준 으로 템 플 릿 과 유사 하 며 모든 하위 클래스 는 형식 범위 내 에서 만 수정 하고 보충 할 수 있 습 니 다.자바 인터페이스 와 자바 추상 류 는 추상 적 인 유형 을 대표 하고 추상 층 의 구체 적 인 실현 이다.대상 을 대상 으로 프로 그래 밍 을 하려 면 프로그램의 재 활용 율 을 높이 고 프로그램의 유지 가능성,확장 성 을 높이 려 면 인터페이스 와 추상 류 를 시스템 구조 차원 의 꼭대기 층 으로 정확하게 사용 하여 대상 을 대상 으로 하거나 인 터 페 이 스 를 대상 으로 하 는 프로 그래 밍 을 해 야 한다.1)인터페이스 와 추상 류 의 가장 큰 차이 점 은 추상 류 는 일부 이미 실 현 된 방법 을 제공 할 수 있 지만 인터페이스의 모든 방법 은 추상 적 인 것 이다.
//            
package Liu;
//      
interface Fiure {
	double calculateArea();	//    calculateArea()
	void showArea();			//    showArea()
}
class Rectangular implements Fiure {
	private double length;		//    
	private double width;		//    
	//        
	public Rectangular(double length, double width) {
		this.length = length;
		this.width = width;
	}
	//        
	public double calculateArea() {
		double area = this.length * this.width;
		return area;
	}
	//        
	public void showArea() {
		double Area = calculateArea();
		System.out.println("       :" + Area);
	}
}
//   
public class text6 {

	public static void main(String[] args) {
		//    
		Fiure pFiure = new Rectangular(5.6, 6.9);
		pFiure.showArea();
	}

}
       :38.64

프로그램 에서 알 수 있 듯 이 인터페이스의 방법 은 실제 클래스 에서 모두 실현 되 어야 한다.그렇지 않 으 면 컴 파일 에 성공 할 수 없다.
(2)추상 류 는 공공 부류 로 서 하위 클래스 의 확장 에 기 초 를 제공 하고 속성 과 행위 의 확장 을 포함한다.한편,인 터 페 이 스 는 속성 을 중시 하지 않 고 방법 만 중시 하여 하위 클래스 가 자 유 롭 게 인 터 페 이 스 를 메 우거 나 확장 할 수 있 도록 하 는 방법(3)하나의 추상 류 의 실현 은 이 추상 류 의 하위 클래스 에서 만 제 시 될 수 있 고 추상 류 를 실현 하 는 것 은 계승 을 바탕 으로 하 며 한 가지 유형 은 여러 개의 인 터 페 이 스 를 실현 할 수 있다.
package Liu;
//  Useleg
interface Useleg {
	void run();
	void walk();
	
}
//  Usemouth
interface Usemouth {
	void speak();
	void eat();
	
}
//  Useear
interface Useear {
	void hearMusic();
	
}
//  USeeye
interface Useeye {
	void seeFilm();
	
}
//Person       
class Person implements Useleg, Usemouth, Useear, Useeye {
	String name;
	int age;
	String address;
	String ID;
	public void run() {
		System.out.println("I am running!");
		
	}
	public void walk() {
		System.out.println("I am walking!");
		
	}
	public void speak() {
		System.out.println("I am speaking!");
		
	}
	public void eat() {
		System.out.println("I am eating!");
		
	}
	public void hearMusic() {
		System.out.println("I am listening to music!");
		
	}
	public void seeFilm() {
		System.out.println("I am seeing a film!");
		
	}
	
}
//   
public class text7 {

	public static void main(String[] args) {
		//  Usemouth  
		Usemouth person = new Person();
		person.eat();
		person.speak();

	}

}
I am eating!
I am speaking!


여러 개의 인 터 페 이 스 를 실현 하고 모든 인터페이스 이름 은 implements 키워드 뒤에 쉼표 로 분리 되 며 여러 개의 인터페이스 가 정의 하 는 행 위 를 가 지 며 모든 추상 적 인 방법 을 실현 해 야 합 니 다.기교:추상 류 는 속성 에 중심 을 두 고 인터페이스 가 방법 에 중심 을 둔다.실제 프로 그래 밍 에서 인 터 페 이 스 를 맨 밑 에 두 고 추상 류 에서 인터페이스의 각 방법 을 실현 하여 서브 클래스 의 계승 을 실현 할 수 있다.
    interface
...
//       
abstract class [  ] implements [   ] {
	...
	
}
//       
class [  ] extends [   ]

좋은 웹페이지 즐겨찾기