다음 문서에서는 Java의 추상 클래스에 대한 개요를 제공합니다. 추상 클래스는 Java의 다른 일반 클래스와 같습니다. 추상 클래스와 일반 클래스의 중요한 차이점은 추상 클래스를 생성한다는 점입니다. 'ABSTRACT' 키워드를 사용해야 합니다. 클래스 구현의 분리입니다. 이는 하위 클래스의 매우 일반적인 기능을 정의하는 데 사용되었습니다. 이러한 유형의 클래스를 추상 클래스라고 합니다. 가장 중요한 점은 추상 클래스의 객체를 생성할 수 없다는 것입니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
추상 클래스에는 추상 메서드와 비추상 메서드가 포함될 수 있습니다. 그러나 서브클래스에서만 제공할 수 있는 추상 메서드의 본문은 포함할 수 없습니다. 서브클래스가 추상 메소드를 구현하지 않는 경우 명시적으로 이를 ABSTRACT로 만들어야 합니다. 즉, 클래스에 추상 메서드가 포함되어 있으면 자체적으로 ABSTRACT로 정의해야 합니다. 추상 클래스를 사용하여 여러 Java 클래스를 그룹화하고, 코드를 최적화하고, 코드를 더 읽기 쉽게 만들고, 중복성을 줄일 수 있습니다. 또한 향후 수업을 위한 템플릿도 제공됩니다.
추상 클래스의 구문은 다음과 같습니다.
다음 예는 다음과 같습니다.
Human.java
package com.cont.article; public abstract class Human { public abstract void whatTheylike(); public void doTheysleep() { System.out.println("Yes every human require sleep."); } }
Human1.java
package com.cont.article; public class Human1 extends Human { @Override public void whatTheylike() { System.out.println("we like to have icecream."); } }
Human2.java
package com.cont.article; public class Human2 extends Human { @Override public void whatTheylike() { System.out.println("we like to have coffee."); } }
TestHuman.java
package com.cont.article; public class TestHuman { public static void main(String[] args) { Human human1 = new Human1(); human1.whatTheylike(); Human human2 = new Human2(); human2.whatTheylike(); human1.doTheysleep(); human2.doTheysleep(); } }
출력:
위의 예에서 HUMAN은 인간의 공통적인 요구 사항, 좋아하는 것, 싫어하는 것을 정의하는 추상 클래스입니다. 좋아하는 것과 싫어하는 것이 서로 다른 다양한 유형의 인간이 있습니다. 따라서 모든 인간은 자신이 좋아하는 특정 구현을 제공할 수 있습니다. 이는 해당 사용자에게만 해당됩니다.
추상 클래스의 가장 큰 장점은 요구 사항에 따라 특정 메서드를 구현하고 중복을 줄이고 코드 가독성을 높이며 메서드 구현을 숨기고 부분 추상화를 제공한다는 것입니다.
추상 클래스를 언제 사용해야 하는지 이해하기 위한 예가 하나 더 있습니다.
동물 클래스가 하나 있다고 가정해 보겠습니다. 지구상에는 다양한 동물이 있으며, 그들은 모두 어떤 의미 또는 주요 의미에서 서로 다릅니다. 그럼에도 불구하고 모든 공통 기능을 모두 포함합니다.
이제 이 Animal 클래스는 모든 Animal에 대해 특정 메소드를 가질 수 없습니다. 따라서 Abstract 클래스의 개념을 이용하면 중복된 코드 없이 이 기능을 구현할 수 있습니다.
모든 동물은 소리, 습관 등이 다릅니다. 예를 들어 개, 고양이, 코끼리, 간식은 소리가 다릅니다. 따라서 이를 위해 상위 클래스에 다른 모든 하위 클래스 또는 하위 클래스가 특정 구현을 제공할 수 있는 일반 메서드를 가질 수 있습니다.
부모 클래스인 Animal에는 Sound()라는 일반적인 추상 메소드가 하나 있습니다. 따라서 모든 하위 클래스는 이 메서드를 재정의하고 특정 구현을 제공해야 합니다.
추상 클래스와 인터페이스의 차이점은 다음과 같습니다.
부분 추상화를 제공하기 위해 추상 클래스가 사용됩니다. NEW 키워드를 사용하여 추상 클래스를 인스턴스화할 수 없습니다. Abstract 메서드에는 본문이 없으며 항상 세미콜론(;)으로 끝납니다. 추상 클래스에는 추상 및 비추상 메서드가 포함됩니다. 추상 슈퍼클래스의 서브클래스는 모든 추상 메서드를 구현해야 합니다. 제공하지 않으면 자신을 추상 클래스로 선언해야 합니다. 슈퍼클래스가 구체적이더라도 하위클래스는 추상적일 수 있습니다. 추상이 아닌 클래스에는 추상 메서드가 포함될 수 없습니다. 또한 추상 메소드는 비정적입니다. 따라서 추상 클래스에는 추상 메서드와 구체적 메서드도 있으므로 100% 추상화를 제공할 수 없습니다. 최종 사용자에게 복잡한 로직을 숨기고 서비스만 보여주는 과정입니다.
반면, 하위 클래스는 상위 클래스가 구체적이더라도 추상 클래스일 수 있으며 데이터 유형으로도 사용할 수 있습니다. 추상 클래스에는 정적 필드와 정적 메서드가 있을 수 있습니다. 클래스 참조와 함께 이러한 정적 멤버를 사용할 수 있습니다.
위 내용은 Java의 추상 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!