인터페이스 와 인터페이스 실현 류,인터페이스 와 추상 류
5470 단어 자바 프로 그래 밍 언어 디자인
인터페이스 정의 및 구현
인터페이스의 정 의 는 인터페이스 성명 과 인터페이스 체 두 부분 을 포함한다.인터페이스 체 는 속성 상수 와 추상 적 인 방법 을 포함한다.
[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 [ ]