Java의 추상 메소드: Shape 클래스 예

Java의 추상화란 무엇입니까?

JAVA의 추상화 필수 속성만 표시하고 불필요한 속성은 숨깁니다.tails 사용자로부터 객체의. Java에서는 추상 클래스, 추상 메소드 및 인터페이스를 사용하여 추상화를 수행합니다. 추상화는 프로그래밍 작업을 줄이는 데 도움이 됩니다.plex정성과 노력.

이 튜토리얼에서 배울 내용은 다음과 같습니다.

추상 클래스란 무엇입니까?

추상 클래스 하나 이상의 추상 메소드를 선언하는 Java 클래스 유형입니다. 이러한 클래스에는 추상 메서드와 구체적인 메서드가 있을 수 있습니다. 일반 클래스는 추상 메소드를 가질 수 없습니다. 추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스입니다. 우리는 개념을 통해 이해할 수 있습니다. 자바의 모양 예.

다음을 고려하십시오.wing Rectangle, Circle 및 Triangle의 세 가지 클래스로 상속되는 Shape 클래스로 구성된 클래스 계층 구조입니다. Shape 클래스는 Rectangle, Circle 및 Triangle의 세 가지 클래스가 공유하는 공통 특성과 메서드를 저장하기 위해 만들어졌습니다. 계산Area()는 세 하위 클래스 모두가 공유하고 Shape 클래스에 존재하는 메소드 중 하나입니다.

자바의 추상 클래스
모양 추상화 예

이제 위에 설명된 클래스에 대한 개체를 생성하는 코드를 작성한다고 가정합니다. 이것이 어떻게 이루어지는지 관찰해보자 사물은 실제 세계에서 보일 것입니다.

직사각형 클래스의 객체는 우리가 일상 생활에서 흔히 볼 수 있는 모양인 직사각형을 제공합니다.

추상 클래스

클래스 삼각형의 객체는 다시 일반적인 일상 모양인 삼각형을 제공합니다.

추상 클래스

하지만 실제 세계에서 Class Shape의 객체는 어떤 모습일까요??

추상 클래스

Shape 클래스가 제공되는 것을 관찰하면 우리의 달성 목표 계승 그리고 다형성. 그러나 인스턴스화되도록 구축되지 않았습니다. 이러한 클래스에는 레이블이 지정될 수 있습니다. 추상. 추상 Java 클래스는 인스턴스화할 수 없습니다.

구문 :

abstract class Shape{
	// code
}

Shape 클래스에 Abstract라는 레이블을 지정하지 않고 인스턴스화할 수도 있습니다. 그러나 그러한 개체는 코드에서 아무 소용이 없으며 잠재적인 오류의 여지가 생길 것입니다. 따라서 이는 바람직하지 않습니다.

Java의 추상 메소드란 무엇입니까?

추상적인 방법 in 자바는 메소드 정의만 있고 구현은 포함하지 않는 메소드입니다. 본문이 없는 메서드를 추상 메서드라고 합니다. 추상 클래스에서 선언해야 합니다. 추상 클래스는 모든 추상 메서드를 구현해야 하기 때문에 추상 메서드는 최종 메서드가 될 수 없습니다.

우리 모두 알고 있듯이 직사각형, 원, 삼각형의 면적 계산 공식은 다릅니다. 계산Area() 메서드는 상속 클래스에 의해 재정의되어야 합니다. Shape 클래스에서 정의하는 것은 의미가 없습니다. 하지만 상속하는 모든 클래스에 메서드가 있는지 확인해야 합니다.

이러한 방법은 라벨을 붙일 수 있습니다 요약.

구문 :

abstract public void calculateArea();

를 위해 추상 메서드이므로 구현이 필요하지 않습니다. 메소드의 서명만 정의됩니다.

추상화 코드 예

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Java의 추상 클래스: 중요 사항

  • 추상 클래스 5월 구체적인(완전한) 방법도 있습니다.
  • 디자인 목적을 위해 클래스에 추상 메서드가 포함되어 있지 않더라도 클래스를 추상으로 선언할 수 있습니다.
  • 추상 클래스의 참조는 해당 하위 클래스의 개체를 가리켜 런타임을 달성할 수 있습니다. 다형성 예: Shape obj = new Rectangle();
  • 클래스에 하나 이상의 추상 메서드가 있는 경우 클래스에는 강제로 추상이라는 레이블이 지정되어야 합니다.

Java의 최종 키워드

final 수정자는 클래스, 메서드 및 변수에 적용됩니다. final의 의미는 문맥에 따라 다르지만 본질적인 개념은 동일합니다.

  • 최종 클래스는 상속될 수 없습니다.
  • 최종 변수는 상수가 되며 그 값은 변경할 수 없습니다.
  • 최종 메서드는 재정의될 수 없습니다. 이는 보안상의 이유로 수행되며 이러한 방법은 최적화를 위해 사용됩니다.

:- 추상 및 최종 키워드를 배우려면

단계 1) 팔로우 복사wing 편집기에 코드를 입력하세요.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

단계 2) 코드를 저장, 컴파일 및 실행합니다.

단계 3) 오류 =? 추상 메서드는 Rectangle 클래스에서 구현되지 않습니다. 문제를 해결하려면 #15행의 주석 처리를 해제하세요.

단계 4) 13번 줄의 주석 처리를 해제합니다. 코드를 저장하고 컴파일합니다.

단계 5) 오류 = ? 변수 b는 최종이다

추상 방법의 규칙

  • 추상 메서드에는 구현이 없습니다. 메소드 서명만 있습니다
  • 클래스가 추상 메서드를 사용하는 경우 추상으로 선언해야 합니다. 그 반대는 사실일 수 없습니다. 이는 추상 클래스가 반드시 추상 메소드를 가질 필요는 없음을 의미합니다.
  • 일반 클래스가 추상 클래스를 확장하는 경우 해당 클래스는 추상 부모의 모든 추상 메서드를 구현해야 합니다.