[Java] 추상 클래스

2023. 2. 11. 20:22·Java/Base
728x90
728x90

추상 클래스 (Abstract class)

  - 하나 이상의 추상 메서드를 포함하거나, abstract 키워드를 가진 클래스

  - 추상적인 개념

      → 화면에 나타낼 수 없는 것들  ex) 게임

  - 인스턴스화를 할 수 없음 (new 키워드 사용 불가)

      → 오류 : 부모클래스 참조변수 = new 부모클래스();

      → 업 캐스팅 가능 : 부모클래스 참조변수 = new 자식클래스();

 

// 추상 클래스
접근제어자 abstract class 클래스명 {

    ...

    // 추상 메서드
    접근제어자 abstract 반환자료형 메서드명(매개변수);

}

#  추상 메서드

  - 구현 코드 없이 메서드의 선언만 있는 메서드 (중괄호 {}가 없음)

  - 추상 클래스에 추상 메서드가 없을 수는 있음

      → 그러나, 추상 메서드가 있으면 반드시 추상 클래스가 되어야 함 (강제성)

  - 추상 메서드는 자식 클래스가 상속받아서, 메서드 오버라이드를 통해 코드를 구현함

      ⇒ 추상 메서드 : 자식 클래스가 구현해야 하는 메서드

 

추상 클래스의 상속

// 1. 부모 클래스와 동일하게 추상 클래스로 정의하는 경우

public abstract class 자식클래스명 extends 부모클래스명 {
    ...
}

-------------------------------------------------------

// 2. 부모 클래스와 다르게 일반 클래스로 정의하는 경우

public class 자식클래스명 extends 부모클래스명 {

    // 메서드 오버라이드 : 부모의 추상 메서드를 일반 메서드로 재정의
    @Override
    public 반환자료형 메서드명(매개변수) {
        super.메서드명();  // 부모 메서드 호출
        ...
    }
}

 

  - 자식 클래스를 일반 클래스로 구현하려면 부모 클래스의 모든 추상 메서드를 재정의해야 함

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'Java > Base' 카테고리의 다른 글

[Java] String 클래스의 메서드  (0) 2023.02.13
[Java] 배열 - 오름차순 정렬  (0) 2023.02.11
[Java] final 키워드  (0) 2023.02.11
[Java] 문자열 자료형 (String)  (0) 2023.02.10
[Java] 상속 관계의 다형성과 참조형 형 변환  (0) 2023.02.09
'Java/Base' 카테고리의 다른 글
  • [Java] String 클래스의 메서드
  • [Java] 배열 - 오름차순 정렬
  • [Java] final 키워드
  • [Java] 문자열 자료형 (String)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    HTML
    js
    tailwindcss
    Swing
    jQuery
    java
    SWAGGER
    면접
    C#
    cs
    SpringBoot
    jsp
    Android
    php
    zapier
    CSS
    git
    Wordpress
    Codeigniter
    개발일지
    vuejs
    오블완
    SQL
    티스토리챌린지
    http
    typeScript
    SEO
    errorNote
    Hotkeys
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] 추상 클래스
상단으로

티스토리툴바