Interface
(1) 추상 클래스의 메소드가 추상인 경우 Java는 새로운 형태의 표현인 인터페이스를 제공합니다. 인터페이스는 함수의 모음입니다. 인터페이스는 객체를 생성할 수 없습니다.
(2) 형식
상위 인터페이스: 공용 인터페이스 Tnter{
}
하위 클래스: 공용 클래스 interImp는 Itner를 구현합니다.{
}
인터페이스 사용
1. 인터페이스는 객체를 생성할 수 없습니다
2. 인터페이스를 구현하기 위한 구현 클래스 정의
구현 키워드 구현
3. 추상 메소드 재정의
4. 구현 클래스 객체 생성 및 메소드 호출
인터페이스의 특징
1. 추상으로 수정할 필요가 없음
2. 클래스는 단일 또는 여러 방법으로 구현될 수 있는 인터페이스를 구현합니다.
3. 인터페이스는 단일 상속 또는 다중 상속 인터페이스를 상속할 수 있습니다.
4. 인터페이스와 부모 클래스의 기능은 반복될 수 있습니다. 즉, 특정 기능을 가져야 합니다.
인터페이스의 멤버 특성
멤버 변수 정적 상수
고정 수정 기호 public static final
작성 여부에 관계없이 이 수식자는 변경되지 않습니다
Member method
고정 수정자 public abstract
작성 여부에 관계없이 이 수식자는 변경되지 않습니다
Abstract 클래스와 인터페이스의 차이점
1. 멤버의 차이점
추상 클래스:
멤버 변수: 변수 또는 상수일 수 있습니다.
생성자 메서드: 하위 클래스의 인스턴스화를 위한 생성자 메서드가 있습니다.
멤버 메서드: 추상일 수 있습니다. 예, 그렇지 않을 수도 있습니다. -abstract
인터페이스:
멤버 변수: 상수만 가능
기본 수정자: public static final
멤버 메소드: abstract만 가능
기본 수정자: public abstract
권장: 기본 수정자 항상 수동으로 지정하세요
2. 클래스와 인터페이스의 차이점
클래스와 클래스:
상속 관계, 단일 상속만 가능, 다단계 상속 가능
클래스와 인터페이스:
구현 관계, 개별적으로 구현 가능 또는 다중 구현 가능
클래스 하나의 클래스를 상속하고 동시에 여러 인터페이스를 구현할 수도 있습니다.
인터페이스 및 인터페이스:
상속 관계, 단일 상속 또는 다중 상속
3. 구현된 개념이 다릅니다.
추상 클래스에 정의됩니다. 상속 시스템
인터페이스는 함수 모음, 시스템의 추가 기능 및 노출된 규칙입니다
부모 클래스/인터페이스 참조를 사용하는 모든 장소는 하위 클래스/구현 클래스 개체를 전달할 수 있습니다.
다형성
동일한 객체, 서로 다른 상태가 서로 다른 시간에 반영됨
예: 물(물, 얼음, 수증기)
고양이(고양이, 동물)
전제 조건:
A: 상속 또는 구현 관계가 있음
B: 방법적 재작성
C: 자식 클래스 객체를 가리키는 부모 클래스의 참조가 있습니다.
다형성에서 멤버 사용의 특징
Fu fz=new Zi()
다형성에서는 모든 표현식이 부모 클래스입니다. 표현식
은 메소드가 호출되면 서브클래스에서 다시 작성한 메소드가 실행됩니다
1. 멤버 변수
컴파일할 때 왼쪽, 실행할 때 왼쪽
2. 멤버 메소드
컴파일할 때 왼쪽, 실행할 때 오른쪽
1 class Fu{ 2 int num=4; 3 void show(){ 4 system.out.println("showFu") 5 } 6 7 } 8 class Zi extends Fu{ 9 10 int num=5;11 void show(){12 system.out.println("showZi");13 }14 }15 class T{16 public static void main(String args[]){17 Fu f=new Zi();18 system.out.println(f.num);19 f.show();20 }21 }
다형성에서의 변환
1. 상향 변환
하위 클래스 객체를 상위 클래스(인터페이스)의 참조에 할당하고 자동으로 Promotion
int a=a;
Fu fz=new를 입력합니다. Zi();
2 .Downcast
상위 클래스(인터페이스)의 참조를 하위 클래스 객체로 강제 적용
double b=10.0;
int a=(int)b;
Fu fz=new Zi();
Zi zi=(Zi )fz;
참고: Fu fu=new Fu()는 다운캐스트할 수 없으며 ClassCastException 유형 변환 예외를 보고합니다
다형성의 장점과 단점
1. 장점
프로그램 유지 관리 및 확장성 향상
2 .단점
서브클래스의 특수 내용은 적용할 수 없습니다
사용하려면 서브클래스 객체를 다운캐스트하거나 다시 생성해야 합니다
3가지 형태의 다형성
1. 특정 클래스 다형성 부모 클래스 변수명 = 새로운 자식 클래스()
2. 추상 클래스 다형성 상위 추상 클래스 변수 이름 = new Subclass ()
3. 인터페이스 다형성 인터페이스 변수 이름 = new 구현 클래스 ()
instanceof 키워드
형식: 객체 이름 인스턴스of 클래스 이름
반환 값: true false
함수: 지정된 객체가 해당 클래스에 의해 생성된 객체인지 확인
Animal a1=new Cat();
Animal a2=new Dog();
method(a1)
public static void method(Animal a){
if(Cat 인스턴스){
하향 변환
call cat 특정 메소드
}
}
위 내용은 객체 지향(인터페이스, 다형성)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!