09.抽象クラス(abstractclass)
抽象クラスとは?
クラス(abstractmethod)を含む抽象メソッド(abstractmethod)は、メソッドの宣言のみであり、実装コードはありません.
メソッド宣言(declaration):タイプ、メソッド名、パラメータを返すように構成されています.
メソッド定義(definition):メソッド実装(implementation)と同じ意味の実装(body)({})
例)int add(int x,int y);//宣言
int add(int x,int y){}//実装部分があり、抽象的な方法ではありません
抽象保存語の使用
抽象クラスはnewではありません(インスタンス化できません)
抽象クラスの実装
メソッドに実装コードがない場合はabstractと宣言します.
abstractメソッドとして宣言されたクラスはabstractとして宣言されます
すべてのメソッドがabstractと宣言されている場合、抽象クラスにインスタンス化できません.
抽象クラスの抽象メソッドはサブクラスによって継承され、実装されます.
抽象クラスにおける抽象メソッド:サブクラスが実装しなければならないメソッド
抽象クラスでの実装方法:サブクラス共通の方法(必要に応じてサブクラスで再定義)
実装例
public abstract class Computer {
abstract void display();
abstract void typing();
public void turnOn() {
System.out.println("전원을 켭니다.");
}
public void turnOff() {
System.out.println("전원을 끕니다.");
}
}
DeskTop.javapublic class DeskTop extends Computer{
@Override
void display() {
System.out.println("DeskTop display");
}
@Override
void typing() {
System.out.println("DeskTop typing");
}
@Override
public void turnOff() {
System.out.println("Desktop turnoff");
}
}
NoteBook.javapublic abstract class NoteBook extends Computer{
@Override
public void typing() {
System.out.println("NoteBook typing");
}
}
MyNoteBook.javapublic class MyNoteBook extends NoteBook{
@Override
void display() {
System.out.println("MyNoteBook display");
}
}
ComputerTest.javapublic class ComputerTest {
public static void main(String[] args) {
Computer computer = new DeskTop();
computer.display();
computer.turnOff();
NoteBook myNote = new MyNoteBook();
}
}
Reference
この問題について(09.抽象クラス(abstractclass)), 我々は、より多くの情報をここで見つけました https://velog.io/@ldevlog/09.-추상-클래스abstract-classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol