6章 継承とインタフェース Flashcards

1
Q

差分プログラミング

A

継承により、スーパークラスからサブクラスに引き継がれたメンバの差分のみを定義して機能の拡張をすること。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

サブクラスの宣言

A

extendsを使用してスーパークラスを1つだけ指定します。

[ 修飾子 ] class サブクラス名 extends スーパークラス名 {}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

オーバーライド

A

サブクラス内からアクセス可能なスーパークラスのメソッドを再定義すること。

以下の条件を満たす必要がある
・メソッドのシグネチャ(メソッド名、引数リスト):同一
・戻り値の型:同一、または、サブクラスの型
・アクセス修飾子:同一、または、より公開範囲の広い修飾子

アクセス修飾子 戻り値 メソッド名(引数リスト) {}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

super.アクセスしたいメンバ

A

サブクラスのメソッドの中でスーパークラスのメンバにアクセス

superは、現在のオブジェクトのスーパークラスのオブジェクトを意味する。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

アノテーション

A

Javaでクラスやメソッド、フィールドなどに特別な情報(メタデータ「「このデータはどういうものか」を説明するためのデータ」)を付けるための仕組み

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

@Override

A

Javaで「メソッドのオーバーライド(上書き)」を明示するために使うアノテーションです。
親クラスやインターフェースで定義されているメソッドを、子クラスで再定義するときに使います。
メソッド名やシグネチャを間違えたときに、コンパイルエラーになるのでミスを防げる。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

finalメソッドの宣言

A

サブクラスでメソッドのカスタマイズされたくない場合にメソッド宣言にfinal修飾子を指定することでメソッドのオーバーライドを禁止できます。

[ 修飾子 ] final 戻り値の型 メソッド名(引数リスト){}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

finalクラスの宣言

A

クラスの宣言にfinal修飾子を指定することで継承を禁止します。

[ 修飾子 ] final class クラス名{}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Objectクラス

A

Javaで定義されているすべてのクラスの親クラス。
Javaで作成するクラスは、明示的に指定しなくてもObjectクラスを継承しています。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

レコードクラス

A

「データの保持」に特化したクラスを簡単に定義するための仕組み。

・getter・equals()・hashCode()・toString() などが自動生成される
・finalであるため、サブクラスを作れない
・インスタンスは不変(immutable)になる

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

レコードクラスの作成

A

[ 修飾子 ] recode レコード名 ( [ コンポーネント ] ) { [ 本文 ] }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

実装

A

メソッド処理を記述すること

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

抽象メソッド

A

メソッド宣言のみを行い、実装を持たないメソッド

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

抽象クラス

A

抽象メソッドを持つことができるクラス

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

具象メソッド

A

実装を持つメソッド

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

具象クラス

A

インスタンス化ができるクラス

17
Q

抽象メソッドの作成

A

[ 修飾子 ] abstract 戻り値 メソッド名 (引数リスト);

18
Q

抽象リストの作成

A

[ 修飾子 ] abstract class クラス名 {}

19
Q

インタフェース

A

関連するクラスが持つべき操作を定める仕組み

インタフェース自体は「実装」を持たない(デフォルトメソッドを除く)
・ インタフェースを実装するクラスは、インタフェースで定義されたすべてのメソッドを実装する必要がある
・ Javaでは多重継承ができないが、複数のインタフェースは実装可能
・ インタフェースに定義できるのは主に次の3種類

1,抽象メソッド(実装なし)
2,定数フィールド(public static final で暗黙的に修飾)
3,デフォルトメソッド(default 付きで実装できる)

20
Q

インタフェースの作成

A

[ 修飾子 ] interface インターフェース名 [ extends インタフェース ] {}

21
Q

インタフェースの実装

A

[ 修飾子 ] class クラス名 implements インタフェース名 {}

22
Q

インタフェースのdefaultメソッド

A

メソッドがオーバーライドされない場合のデフォルトの実装

[ 修飾子 ] default 戻り値の型 メソッド名 (引数リスト) {}

23
Q

インタフェースのstaticメソッド

A

実装クラスを利用可能な具象メソッド

[ 修飾子 ] static 戻り値の型 メソッド名 (引数リスト) {}

24
Q

インタフェースのprivateメソッド

A

インタフェース内でコードの共通処理をまとめるためのメソッド

private [ static ] 戻り値の型 メソッド名 (引数リスト) {}

25
シールクラス
クラスの継承を特定のクラスやインタフェースに制限することができるクラス
26
シールクラスの作成
[ 修飾子 ] sealed class シールクラス名 permits 継承を許可するクラス名 {}
27
ポリモーフィズム
同じインタフェースやメソッド名で異なる実装を使い分けることができる概念
28
キャストによる型変換
ある型のデータを別の型に変換すること。明示的キャスと暗黙的キャストがある。 (変換したい型)オブジェクト;
29
instanceof
型の比較やパターンマッチングを行う演算子 ・型の比較 変数名 instanceof クラスまたはインタフェース名 ・パターンマッチング 変数名 instanceof パターン変数宣言