자바 튜토리얼

자바 홈 자바 소개 자바 시작하기 자바 구문 자바 주석 자바 변수 자바 데이터 유형 자바 타입 캐스팅 자바 연산자 자바 문자열 자바 수학 자바 부울 자바 If...Else 자바 스위치 자바 while 루프 자바 For 루프 자바 중단/계속 자바 배열

자바 메소드

자바 메소드 자바 메소드 매개변수 자바 메소드 오버로딩 자바 범위 자바 재귀

자바 클래스

자바 OOP 자바 클래스/객체 자바 클래스 속성 자바 클래스 메소드 자바 생성자 자바 수정자 자바 캡슐화 자바 패키지 / API 자바 상속 자바 다형성 자바 내부 클래스 자바 추상화 자바 인터페이스 자바 열거형 자바 사용자 입력 자바 날짜 자바 배열 목록 자바 링크드리스트 자바 해시맵 자바 해시셋 자바 반복자 자바 래퍼 클래스 자바 예외 자바 정규식 자바 스레드 자바 람다

자바 파일 처리

자바 파일 자바 파일 생성/쓰기 자바 읽기 파일 자바 삭제 파일

자바 방법

두 개의 숫자 더하기

자바 참조

자바 키워드 자바 문자열 메소드 자바 수학 메소드

자바 예제

자바 예제 자바 컴파일러 자바 연습 자바 퀴즈 자바 인증서


자바 추상화


추상 클래스 및 메서드

데이터 추상화 는 특정 세부 사항을 숨기고 필수 정보만 사용자에게 보여주는 프로세스입니다. 추상화는 추상 클래스인터페이스
를 사용하여 달성할 수 있습니다 (다음 장에서 자세히 설명합니다).

키워드 는 abstract클래스 및 메서드에 사용되는 비접근 한정자입니다.

  • 추상 클래스: 개체를 생성하는 데 사용할 수 없는 제한된 클래스입니다(접근하려면 다른 클래스에서 상속되어야 함).

  • 추상 메서드: 추상 클래스에서만 사용할 수 있으며 본문이 없습니다. 본문은 (에서 상속됨) 하위 클래스에 의해 제공됩니다.

추상 클래스는 추상 메서드와 일반 메서드를 모두 가질 수 있습니다.

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

위의 예에서 Animal 클래스의 객체를 생성하는 것은 불가능합니다.

Animal myObj = new Animal(); // will generate an error

추상 클래스에 액세스하려면 다른 클래스에서 상속되어야 합니다. 다형성에서 사용한 Animal 클래스를 추상 클래스로 변환해 보겠습니다 .

상속 장 에서 우리 extends는 클래스에서 상속하기 위해 키워드를 사용 한다는 것을 기억하십시오 .

예시

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

추상 클래스와 메서드를 사용하는 이유와 시기는?

보안을 유지하려면 특정 세부 정보를 숨기고 개체의 중요한 세부 정보만 표시합니다.

참고: 추상화는 Interfaces 로도 달성할 수 있습니다 . 이에 대해서는 다음 장에서 자세히 알아볼 것입니다.