JAVA:Abstract Class-2020年第3期15期
2157 ワード
1 abstract class Vehicle {
2 String name;
3 abstract public String getName(String val);
4 public String getName() {
5 return "Vehicle name:" + name;
6 }
7 }
8 class Car extends Vehicle {
9 String name;
10 public Car(String val) {
11 name = super.name = val;
12 }
13 public String getName(String val) {
14 return "Car name:" + val;
15 }
16 public String getName(byte val[]) {
17 return "Car name:" + val;
18 }
19 }
20 public class Gisafirst {
21 public static void main(String args[]) {
22 Vehicle obj = new Car("Spark");
23 System.out.print(obj.getName());
24 }
25 }
行番号:クラスの共通フィールドとメソッドを定義する非特定クラス(未完成の設計図)
1)抽象クラスオブジェクトXの作成
2)抽象クラスとエンティティクラスに継承関係(extends)がある
:抽象メソッドgetName->パラメータの作成:文字列val
:異なるタイプの呼び出しに応答するために、複数の同じ名前の関数を定義します(抽象メソッドgetNameと関数getNameは同じ名前ですが、パラメータが異なるため、応答が異なります).
:パラメータとして受信した文字列を親(親)クラスの変数nameに代入し、クラスの変数nameに代入します.
public String getName(String val) {
:作成関数getName▶パラメータ:文字列val▶戻り値:String
:関数getName▶パラメータの作成:整数配列val
:複数の同名関数を定義し、パラメータのタイプと数を変更して、異なるタイプの呼び出しに応答します.
(つまり、抽象メソッドを実体化する関数getNameと関数getNameの名前は同じですが、パラメータが異なるため、応答が異なります.)
※抽象クラスと継承関係の場合
抽象クラスで宣言された抽象メソッドを宣言する必要があります.
:クラスCarのオブジェクトobjを作成し、データ型を抽象クラスとして指定▶パラメータ:文字列Spark
:オブジェクトobjの関数getName()を呼び出し、戻り値を出力します.
->関数getName()のパラメータ:なし
※オーバーロードの結果からパラメータのない関数getName()を呼び出す.
もし.クラスCarに関数getName()が含まれている場合、優先度はサブクラスであるため、クラスCarの関数getName()が呼び出されます.
https://blog.naver.com/PostView.nhn?blogId=gisafirst&logNo=222291179379
Reference
この問題について(JAVA:Abstract Class-2020年第3期15期), 我々は、より多くの情報をここで見つけました https://velog.io/@csy9604/JAVA-추상-클래스-Abstract-Class-2020년-3회-실기-15번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol