728x90

추상 메소드(abstract method)

  • abstract 키워드를 사용해서 선언
  • 선언되어 있으나 구현되어 있지 않은 메소드
    • 형태만 있는 메소드!
  • 서브 클래스에서 오버라이딩하여 구현해야함

추상 클래스(abstract class)

abstract class Shape {
    public Shape() { }
    public void paint() { draw(); }
    abstract public void draw();
}
abstract class MyComponent {
    String name;
    public void load(String name) {
        this.name = name;
    }
}
  1. 추상 메소드를 하나라도 가진 클래스
  2. 추상 메소드가 하나도 없지만 abstract 로 선언된 클래스

🌟 추상 클래스는 객체를 생성할 수 없다!


추상 클래스의 상속

abstract class Shape { // 추상 클래스
    public Shape() { }
    public void paint() { draw(); }
    abstract public void draw();
}
abstract class Line extends Shape { // 추상 클래스
    public String toString () { return "Line";}
}
  1. 추상 클래스의 단순 상속
    • 추상 클래스를 상속 받아, 추상 메소드를 구현하지 않으면 추상 클래스가 됨
    • 서브 클래스도 abstract 로 선언해야함
  2. 추상 클래스의 구현 상속
    • 서브 클래스에서 슈퍼 클래스의 추상 메소드 구현(오버라이딩)
    • 서브 클래스는 추상 클래스가 아님

└ * 슈퍼 클래스에는 추상 메소드를 선언만 해두고 서브 클래스에서 구현

  • 추상 클래스를 상속 받고 서브 클래스에서 추상 메소드를 구현(오버라이딩)했으므로 abstract 키워드로 선언 필요 ❌
  • 서브 클래스에서 추상 메소드를 구현하지 않으려면 반드시 abstract 선언 필요
    • ∴ 서브 클래스는 추상 클래스가 아니므로 객체 생성 가능 !
  • 추상 클래스는 추상 메소드를 통해서 서브 클래스가 구현할 메소드를 명료하게 알려주는 인터페이스의 역할을 수행함

추상 클래스의 용도

  • 설계와 구현의 분리
    • 슈퍼 클래스에서는 개념 정의 (설계 단계)
    • 서브 클래스에서 구체적 행위의 구현 (구현 단계)
    • └ 각 서브 클래스 마다 목적에 맞게 추상 메소드를 다르게 구현
    ∴ 계층적 상속 관계 구조 구현 가능 !

 


 

 

 

 

추상 메소드와 추상 클래스

추상 메소드(abstract method)

www.notion.so

 

아래 노션 페이지에 자바 공부 내용에 대해 업로드 합니다!

수정사항이나 질문사항의 경우 노션 댓글로 남겨주세요!(*•̀ᴗ•́*)و ̑̑

 

 

JAVA 이론 정리

주석 단축키 주석 처리하고 싶은 부분을 블록 처리하고 ‘Ctrl+Shift+ / ’를 누르면 /* */로 주석 처리가 됩니다. 주석을 해제하고 싶은 부분을 블록 처리하고 ‘ Ctrl+Shift+ \ (원 표시 혹은 역슬러시)

www.notion.so

 


개발 환경

Intellij

 

작성 플랫폼

Notion

 

728x90

'🧑‍💻 Language > Java' 카테고리의 다른 글

[Java] 11. 모듈과 패키지  (2) 2021.05.26
[Java] 10. 인터페이스  (0) 2021.05.26
[Java] 8. 메소드 오버라이딩  (0) 2021.05.16
[Java] 7. 상속  (0) 2021.05.08
[Java] 6. 메소드 작성과 접근 지정자  (0) 2021.05.02