산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 추상 클래스와 메서드 완벽 가이드

Java 추상 클래스와 메서드

이 튜토리얼은 Java 추상 클래스와 메서드에 대한 명확하고 예제 중심의 탐구를 제공하며 Java에서 추상화가 어떻게 구현되는지 설명합니다.

Java 추상 클래스

Java에서 추상 클래스는 인스턴스화할 수 없습니다. abstract 키워드가 클래스를 추상으로 표시합니다. 예:

// 추상 클래스 생성 abstract class Language { // 필드와 메서드 } ... // 객체 생성 시도 Language // 에러 발생 Language obj = new Language();

추상 클래스는 구체적(일반) 메서드와 추상 메서드를 모두 포함할 수 있습니다. 예:

abstract class Language { // 추상 메서드 abstract void method1(); // 일반 메서드 void method2() { System.out.println("This is regular method"); } }

일반 메서드에 대한 자세한 내용은 Java 메서드 참조.


Java 추상 메서드

추상 메서드는 본문이 없으며 하위 클래스가 이행해야 할 계약을 선언합니다. abstract 키워드로 정의합니다, 예:

abstract void display();

본문이 없으므로 문장은 세미콜론으로 끝납니다. 클래스가 추상 메서드를 선언하면 클래스 자체가 추상으로 선언되어야 하며, 그렇지 않으면 컴파일러가 에러를 냅니다:

// 에러 // 클래스가 추상이어야 함 class Language { // 추상 메서드 abstract void method1(); }

예제: Java 추상 클래스와 메서드

추상 클래스는 직접 인스턴스화할 수 없지만, 구체적 하위 클래스가 확장하여 멤버를 사용할 수 있습니다. 예:

abstract class Language { public void display() { System.out.println("This is Java Programming"); } } class Main extends Language { public static void main(String[] args) { Main obj = new Main(); obj.display(); } }

출력

This is Java programming

여기서 추상 클래스 Language가 구체적 메서드 display()를 정의합니다. 하위 클래스 Main이 이 메서드를 상속받아 인스턴스를 통해 호출합니다.


추상 메서드 구현

추상 클래스가 추상 메서드를 선언하면 모든 구체적 하위 클래스는 구현을 제공해야 합니다. 예:

abstract class Animal { abstract void makeSound(); public void eat() { System.out.println("I can eat."); } } class Dog extends Animal { public void makeSound() { System.out.println("Bark bark"); } } class Main { public static void main(String[] args) { Dog d1 = new Dog(); d1.makeSound(); d1.eat(); } }

출력

Bark bark I can eat.

하위 클래스 Dog가 추상 makeSound() 메서드를 구현하고 구체적 eat() 메서드를 상속받습니다.

참고: Dog가 makeSound()를 오버라이딩하지 않으면 스스로 추상으로 선언해야 합니다.


추상 클래스 생성자 접근

추상 클래스도 일반 클래스처럼 생성자를 정의할 수 있습니다. 하위 클래스는 super()로 슈퍼클래스 생성자를 호출합니다. 예:

abstract class Animal { Animal() { // 초기화 로직 } } class Dog extends Animal { Dog() { super(); // 추가 초기화 } }

super()는 하위 클래스 생성자의 첫 문장이어야 함을 기억하세요.


Java 추상화

추상 클래스와 메서드는 Java에서 추상화를 달성하는 주요 도구입니다. 추상화는 불필요한 구현 세부 사항을 숨기고 사용자에게 필수 인터페이스만 제시합니다. 이는 복잡한 시스템을 단순화하고 유연성을 증진합니다.

예를 들어 오토바이 브레이크는 모델마다 내부 메커니즘이 다를 수 있지만 동일한 고수준 기능(자전거 감속)을 수행합니다.

예제 3: Java 추상화

abstract class MotorBike { abstract void brake(); } class SportsBike extends MotorBike { public void brake() { System.out.println("SportsBike Brake"); } } class MountainBike extends MotorBike { public void brake() { System.out.println("MountainBike Brake"); } } class Main { public static void main(String[] args) { MountainBike m1 = new MountainBike(); m1.brake(); SportsBike s1 = new SportsBike(); s1.brake(); } }

출력:

MountainBike Brake SportsBike Brake

각 구체적 하위 클래스가 고유한 brake() 구현을 제공하여 추상화가 인터페이스와 구현을 분리하는 방식을 보여줍니다.

참고: 인터페이스로도 Java에서 추상화를 달성할 수 있습니다.


기억해야 할 핵심 포인트

java

  1. C# 추상 클래스와 추상 메서드: 실전 가이드
  2. Java 변수와 리터럴: 종합 가이드
  3. Java 클래스와 객체: 실전 가이드
  4. Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용
  5. Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지
  6. Java 중첩/내부 클래스 마스터: 종류, 예제, 모범 사례
  7. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  8. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  9. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  10. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제