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;
}
}
- 추상 메소드를 하나라도 가진 클래스
- 추상 메소드가 하나도 없지만 abstract 로 선언된 클래스
🌟 추상 클래스는 객체를 생성할 수 없다!
추상 클래스의 상속
abstract class Shape { // 추상 클래스
public Shape() { }
public void paint() { draw(); }
abstract public void draw();
}
abstract class Line extends Shape { // 추상 클래스
public String toString () { return "Line";}
}
- 추상 클래스의 단순 상속
- 추상 클래스를 상속 받아, 추상 메소드를 구현하지 않으면 추상 클래스가 됨
- 서브 클래스도 abstract 로 선언해야함
- 추상 클래스의 구현 상속
- 서브 클래스에서 슈퍼 클래스의 추상 메소드 구현(오버라이딩)
- 서브 클래스는 추상 클래스가 아님
└ * 슈퍼 클래스에는 추상 메소드를 선언만 해두고 서브 클래스에서 구현
- 추상 클래스를 상속 받고 서브 클래스에서 추상 메소드를 구현(오버라이딩)했으므로 abstract 키워드로 선언 필요 ❌
- 서브 클래스에서 추상 메소드를 구현하지 않으려면 반드시 abstract 선언 필요
- ∴ 서브 클래스는 추상 클래스가 아니므로 객체 생성 가능 !
- 추상 클래스는 추상 메소드를 통해서 서브 클래스가 구현할 메소드를 명료하게 알려주는 인터페이스의 역할을 수행함
추상 클래스의 용도
- 설계와 구현의 분리
- 슈퍼 클래스에서는 개념 정의 (설계 단계)
- 서브 클래스에서 구체적 행위의 구현 (구현 단계)
- └ 각 서브 클래스 마다 목적에 맞게 추상 메소드를 다르게 구현
추상 메소드와 추상 클래스
추상 메소드(abstract method)
www.notion.so
아래 노션 페이지에 자바 공부 내용에 대해 업로드 합니다!
수정사항이나 질문사항의 경우 노션 댓글로 남겨주세요!(*•̀ᴗ•́*)و ̑̑
JAVA 이론 정리
주석 단축키 주석 처리하고 싶은 부분을 블록 처리하고 ‘Ctrl+Shift+ / ’를 누르면 /* */로 주석 처리가 됩니다. 주석을 해제하고 싶은 부분을 블록 처리하고 ‘ Ctrl+Shift+ \ (원 표시 혹은 역슬러시)
www.notion.so
개발 환경
작성 플랫폼
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 |