Java의 추상 클래스 – 예제 포함
게시 됨: 2022-06-24데이터 추상화는 특정 정보를 숨기고 필요한 세부 정보만 사용자에게 표시하는 기술입니다. 이 데이터 추상화는 추상 클래스와 인터페이스의 두 가지 방법으로 달성할 수 있습니다.
자바에서 추상 클래스란?
Java의 추상 클래스는 abstract 키워드로 묶이거나 선언된 제한된 클래스입니다. 추상 클래스는 추상 메서드와 비 추상 메서드를 모두 가질 수 있습니다. 개체를 만드는 데 사용할 수 없습니다. 추상 클래스에 액세스하려면 다른 클래스에서 상속되어야 합니다.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
추상 클래스의 규칙
- 추상 클래스는 추상 키워드 내에서만 선언할 수 있습니다.
- 추상 및 비추상 메서드를 모두 포함할 수 있습니다.
- 또한 final 메소드를 가질 수 있습니다.
- 절대 인스턴스화할 수 없습니다.
- 생성자 및 정적 메서드도 사용할 수 있습니다.
추상 클래스의 예:
추상 클래스 B{}
자바의 추상 메소드
이 메서드는 추상 클래스에서만 사용할 수 있으며 본문을 포함하지 않습니다. 본문은 상속된 하위 클래스에서 제공됩니다.
추상 메서드의 예는 다음과 같습니다.
추상 무효 printStatus(); //메서드 본문 및 추상 없음
추상 메소드가 있는 Java 추상 클래스의 예
다음 예제에서 car는 하나의 추상 메서드인 run이 있는 추상 클래스입니다. 구현은 Audi라는 클래스에서 제공합니다.
추상 클래스 자동차{
추상 무효 실행();
}
클래스 Audi4는 자전거를 확장합니다.{
무효 run(){System.out.println("잘 실행");}
공개 정적 무효 메인(문자열 인수[]){
자동차 obj = 새로운 Audi4();
obj.run();
}
}
프로그램의 출력은 "잘 실행"됩니다.
대부분의 경우 구현 클래스는 알 수 없는 상태로 유지되며(데이터 추상화) 구현 클래스의 개체는 팩토리 메서드를 통해 가져옵니다.
클래스 인스턴스를 반환하는 메서드를 팩토리 메서드라고 합니다.
Factory 메소드를 사용하는 Java 추상 클래스의 예
다음 예제에서는 square 클래스의 인스턴스를 만들면 Square 클래스의 draw() 메서드가 시작됩니다.
추상 클래스 모양{
추상 무효 그리기();
}
//실제 시나리오에서 구현은 다른 사람이 제공합니다. 즉, 최종 사용자가 알 수 없습니다.
클래스 Square는 Shape를 확장합니다.{
무효 draw(){System.out.println("정사각형 그리기");}
}
Circle1 클래스 확장 모양{
무효 draw(){System.out.println("육각형 그리기");}
}
//실제 시나리오에서 메소드는 프로그래머 또는 사용자에 의해 호출됩니다.
클래스 TestAbstraction1{
공개 정적 무효 메인(문자열 인수[]){
Shape s=new Circle1();//실제 시나리오에서는 getShape() 메소드와 같은 메소드를 통해 객체를 제공합니다.
s.draw();
}
}
위 프로그램의 출력은 "drawing hexagon"이 될 것입니다.
소프트웨어 엔지니어링에 대한 인기 코스 및 기사
인기 프로그램 | |||
소프트웨어 개발의 이그 제 큐 티브 PG 프로그램 - IIIT B | 블록체인 인증 프로그램 - PURDUE | 사이버 보안 인증 프로그램 - PURDUE | 컴퓨터 과학 석사 - IIIT B |
기타 인기 기사 | |||
미국의 클라우드 엔지니어 급여 2021-22 | 미국의 AWS 솔루션 아키텍트 급여 | 미국의 백엔드 개발자 급여 | 미국의 프론트엔드 개발자 급여 |
미국 웹 개발자 급여 | 2022년 스크럼 마스터 인터뷰 질문 | 2022년 사이버 보안 분야에서 경력을 시작하는 방법은 무엇입니까? | 공학도를 위한 미국에서의 직업 선택 |
Java에서 추상 클래스는 언제 사용해야 합니까?
다음은 추상 클래스를 사용할 수 있는 몇 가지 시나리오입니다.
- 기본 클래스의 공통 메서드를 사용하여 코드에 상속 개념을 도입하려고 할 때(다양한 관련 클래스 간에 코드를 공유하기 위해).
- 요구 사항이 구체적이고 구현 세부 사항이 불완전한 경우.
- 추상 클래스를 확장하는 데 사용되는 클래스에 public이 아닌 수정자가 필요한 여러 공통 필드 또는 메서드가 있는 경우.
- 비최종 또는 비정적 메서드를 사용하여 개체 상태를 수정하는 경우.
추상화를 위해 Java에서 인터페이스를 언제 사용합니까?
다음 시나리오에서는 추상화를 달성하기 위해 Java 인터페이스가 필요합니다.
- 다중 상속 기능을 지원하려면
- 느슨한 결합을 달성하려면
인터페이스 선언
인터페이스는 interface 키워드로만 선언해야 합니다. 그 결과 모든 상속 메서드가 빈 본문에 선언되고 모든 필드가 기본적으로 public, static 및 final이 되도록 전체 추상화를 수행합니다. 인터페이스를 구현하는 클래스는 인터페이스에 선언된 모든 메서드를 구현해야 합니다.
자바 인터페이스의 예
아래 예제에서 인쇄 가능한 인터페이스에는 클래스 A6에서 구현이 제공되는 메서드가 하나만 있습니다.
인터페이스 인쇄 가능{
무효 인쇄();
}
클래스 A6은 인쇄 가능한{
공개 무효 print(){System.out.println("환영합니다");}
공개 정적 무효 메인(문자열 인수[]){
A6 obj = 새로운 A6();
obj.print();
}
}
프로그램의 출력은
환영하다.
예 2:
인터페이스 뱅크{
float rateOfInterest();
}
클래스 BOI는 은행을 구현합니다.{
공개 float rateOfInterest(){반환 8.5f;}
}
클래스 CUB는 은행을 구현합니다.{
공개 float rateOfInterest(){반환 9.2f;}
}
클래스 TestInterface2{
공개 정적 무효 메인(문자열[] 인수){
은행 b=new BOI();
System.out.println("ROI: "+b.rateOfInterest());
}}
위 프로그램의 출력은
ROI: 8.5
자바 추상화의 장점
- 느슨한 결합: Java의 추상화는 지수 수준에서 종속 엔터티를 완화하여 느슨한 결합을 돕습니다.
- 재사용 가능한 코드: Java의 추상 클래스는 시간을 절약해 줍니다. 추상 메서드는 필요할 때만 호출할 수 있습니다. 추상 클래스는 동일한 코드를 다시 작성하지 않으므로 시간을 절약할 수 있습니다.
- 데이터 보호: Java의 데이터 추상화는 민감한 코드 세부 정보를 사용자에게 숨기는 데 도움이 됩니다. 중요한 프로젝트 기능을 숨기고 필수 구성 요소만 표시하는 데 도움이 됩니다.
- 더 빠른 문제 해결: 동적 메서드 해결의 도움으로 하나의 추상 메서드를 사용하여 다양한 문제와 복잡한 문제를 해결할 수 있습니다.
Java 및 소프트웨어 개발의 데이터 추상화에 대해 자세히 알아보려면 upGrad와 협력하여 IIT Bangalore에서 제공하는 소프트웨어 개발의 Executive Post 대학원 프로그램에 등록하십시오.
소프트웨어 개발의 이그 제 큐 티브 대학원 프로그램은 13개월 온라인 프로그램입니다. 교과 과정은 전문직 종사자가 직업을 포기하지 않고 학습에 집중할 수 있도록 특별히 고안되었습니다. 커리큘럼에는 산업 기반 프로젝트 및 사례 연구가 포함됩니다. 또한, 이 프로그램은 후보자가 업계의 최신 동향을 최신 상태로 유지할 수 있도록 업계 전문가의 10개 이상의 라이브 세션을 제공합니다.
추상 메서드 없이 추상 클래스를 가질 수 있습니까?
예. 둘 다 독립적인 기술이기 때문에 추상 메서드 없이 추상 클래스를 가질 수 있습니다. 추상 클래스를 선언한다는 것은 자체적으로 인스턴스화할 수 없으며 하위 클래스의 도움으로만 수행할 수 있음을 의미합니다. 추상 메서드를 정의한다는 것은 메서드가 하위 클래스에 정의되거나 포함되어 있음을 의미합니다.
데이터 추상화가 필수적인 이유는 무엇입니까?
예. 둘 다 독립적인 기술이기 때문에 추상 메서드 없이 추상 클래스를 가질 수 있습니다. 추상 클래스를 선언한다는 것은 자체적으로 인스턴스화할 수 없으며 하위 클래스의 도움으로만 수행할 수 있음을 의미합니다. 추상 메서드를 정의한다는 것은 메서드가 하위 클래스에 정의되거나 포함되어 있음을 의미합니다.
데이터 추상화는 컨트롤 추상화와 어떻게 다릅니까?
데이터 추상화는 복잡하고 복잡한 데이터 유형을 생성하지만 필수 세부 사항만 강조 표시하거나 표시하는 프로세스입니다. 제어 추상화는 추상화의 소프트웨어 부분을 처리하는 프로세스입니다. 프로그램을 분해하거나 단순화하여 불필요한 프로그램 실행 세부 정보를 숨기는 프로세스입니다. 제어 추상화는 주로 새로운 기능을 생성하고 다양한 제어 문을 단일 엔터티로 혼합하는 데 사용됩니다.