[TIL]JAVA-抽象クラス
💡Day 15抽象クラス
この文章は南宮星のjava定式3/eをもとに学習内容を整理した文章です.
クリーンアップソース:https://github.com/qudalsrnt3x/javaStandard
抽象クラスとは?
クラスを設計図にたとえると、抽象クラスは未完成の設計図にたとえることができる.共通部分のみ(宣言部分)を作成し、継承によって各設計図を完成させることができます.
実現の目的は多形性を実現することである.
abstract class 클래스이름 {
...
}
特長
▼▼▼抽象的な方法(抽象的な方法)
抽象的な方法は,方法の宣言簿のみを書き,実施簿は書かない.
未完了の理由
/*주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다.*/
abstract 리턴타입 메서드이름();
▼▼▼抽象クラスの作成
abstract class 클래스이름 {
// 멤버변수
// 생성자
// 메서드
// 추상메서드
}
例abstract class Player {
boolean pause; // 일시정지 상태를 저장하기 위한 변수
int currentPos; // 현재 Play되고 있는 위치를 저장하기 위한 변수
Player() { // 추상 클래스 생성자
pause = false;
currentPos = 0;
}
/** 지정된 위치(pos)에서 재생을 시작하는 기능이 수행하도록 작성되어야 한다. */
abstract void play(int pos); // 추상메서드
/** 재생을 즉시 멈추는 기능을 수행하도록 작성되어야 한다. */
abstract void stop();
void play(){
play(currentPos); // 추상메서드 사용가능
}
void pause() {
if (pause) { // pause가 true 일 때(정지상태)에서 pause가 호출되면,
pause = false; // pause의 상태를 false로 바꾸고
play(currentPos); // 현재의 위치에서 play 한다.
} else { // pause가 false일 때 (play상태)에서 pause가 호출되면,
pause = true; // pause의 상태를 true로 바꾸고
stop(); // play를 멈춘다.
}
}
}
class CDplayer extends Player {
void play(int currentPos) {
//.. 조상의 추상메서드를 반드시 구현
}
void stop() {
//.. 조상의 추상메서드를 반드시 구현
}
// CDPlayer클래스에 추가로 정의된 멤버
int currntTrack;
void nextTrack() {
currntTrack++;
// ...
}
void preTrack() {
if (currntTrack > 1) {
currntTrack--;
// ...
}
}
}
abstractを抽象メソッドとして宣言するのは、サブクラスが作成時に抽象メソッドを実装するように強制するためです.なぜ抽象クラスを使用するのですか?
目的は
Reference
この問題について([TIL]JAVA-抽象クラス), 我々は、より多くの情報をここで見つけました https://velog.io/@qudalsrnt3x/TIL-JAVA-추상클래스abstract-classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol