>Java >java지도 시간 >Java 추상 클래스 및 인터페이스 인스턴스 분석

Java 추상 클래스 및 인터페이스 인스턴스 분석

王林
王林앞으로
2023-04-30 11:40:061385검색

1. 추상 클래스

1.1 추상 클래스의 개념

객체는 클래스를 통해 기술된다는 것은 누구나 알고 있지만, 그렇다고 모든 클래스가 객체를 기술하는 데 사용된다는 의미는 아닙니다.

클래스에 설명할 수 있는 정보가 부족합니다. 특정 객체, 이것이 추상 클래스입니다

추상 클래스의 키워드: abstract

1.2 추상 메서드

먼저 이전에 작성한 클래스를 살펴보겠습니다.

class Plant {
    String name;
    String source;
    String genus;
    public void trait() {
        System.out.println("父类方法");
    }
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子类方法");
    }
}

trait 메서드는 재정의된 메서드이므로 다음이 있습니다. 상위 클래스의 특성을 전혀 구현할 필요가 없으므로 추상 메서드로 변경할 수 있습니다

참고: 추상 클래스에는 추상 메서드가 없지만 추상 메서드는 추상 클래스에 있어야 합니다

abstract class Plant {
    String name;
    String source;
    String genus;
    public abstract void trait();
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子类方法");
    }
}

Java 추상 클래스 및 인터페이스 인스턴스 분석

1.3 추상 클래스의 세부 사항

1. 추상 클래스는 상속을 목적으로 하므로 인스턴스화할 수 없습니다. 그 외에는 일반 클래스와 다르지 않습니다.

2. 하지만 추상 메서드는 추상 클래스에 있어야 합니다.

3. 일반 클래스가 추상 클래스를 상속하는 경우 추상 클래스의 모든 추상 메서드를 다시 작성해야 합니다.

4. 추상 클래스는 추상 클래스를 상속할 수 있습니다. 지금은 추상 메소드를 다시 작성할 필요가 없습니다

5. Final은 추상 클래스와 Abstract 메소드를 수정할 수 없습니다.

6. 추상 메소드는 private 및 static으로 수정할 수 없습니다.

어떤 사람들은 이상하다고 생각할 수도 있습니다. 부모 클래스로 상속받았는데 왜 다른 추상 클래스를 만들어야 합니까?

다음과 같이 개체를 인스턴스화할 때 부모 클래스 개체를 인스턴스화하는 시나리오를 가정할 수도 있습니다.

public static void main(String[] args) {
        Plant tree=new Plant();
        tree.trait();
    }

부모 클래스가 일반 클래스인 경우 컴파일러는 이때 오류를 보고하지 않고 직접 호출합니다. 부모 클래스의 메서드

부모 클래스가 추상 클래스인 경우 추상 클래스를 인스턴스화할 수 없기 때문에 문제를 조기에 발견할 수 있도록 컴파일러에서 직접 오류를 보고합니다.

2. 인터페이스

2.1 인터페이스 개념

소위 인터페이스는 공개 동작 사양 지침입니다. 예를 들어 A4 용지, A4 용지 크기가 210mm*297mm이면 이 사양에 따라서만 제작할 수 있습니다.

Java에서는 인터페이스를 다음과 같이 간주할 수 있습니다. 여러 클래스의 공개 사양이며 참조 유형입니다. Data

인터페이스 키워드: 인터페이스

2.2 인터페이스 세부 정보

인터페이스에도 주의할 사항이 있습니다.

1. 인터페이스도 구현하는 데 사용됩니다. 다른 클래스에 의해 인스턴스화될 수 없습니다

2. 인터페이스 내부 메소드는 추상 메소드만 가능하며 기본값은 공개 정적 수정입니다

3 인터페이스의 멤버 변수는 기본적으로 정적 상수이므로 초기화해야 합니다

4. 인터페이스를 구현하는 데 사용되는 키워드는 여전히 클래스 구현 인터페이스를 다시 작성해야 합니다. 인터페이스의 모든 추상 메서드는 생성자와 정적 코드 블록을 가질 수 없습니다.

6. 인터페이스는 확장을 사용하여 인터페이스를 상속합니다.

7. 인터페이스를 만들 때 일반적으로 인터페이스 이름은 대문자 "I"로 시작합니다(권장, 꼭 필요한 사항 아님)

8. 인터페이스도 다형성을 달성할 수 있습니다

Java에서 인터페이스의 주요 역할은 다음과 같습니다. 다중 상속을 구현하려면

Java의 클래스는 하나의 상위 클래스만 상속할 수 있지만 여러 인터페이스를 구현할 수 있습니다

추상 클래스와 인터페이스는 비슷하지만 가장 본질적인 차이점은 추상 클래스는 일반 멤버 메서드를 가질 수 있고 일반 클래스를 가질 수 있다는 것입니다. 멤버 변수는 인터페이스의 메소드만이 추상 메소드일 수 있지만

추상 클래스 및 인터페이스에 대한 소개가 완료되었습니다. 다음 기사에서는 Java에서 더 중요한 인터페이스 중 일부를 소개하겠습니다

위 내용은 Java 추상 클래스 및 인터페이스 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제