-
以下の通りになる修飾子は?
クラス:サブクラスが作成できない
メソッド:サブクラス側でオーバーライドできない
変数:定数になる
final
-
非static→static
static→非static
上記の各メソッドはオーバーライドできる?できない?
できない
-
クラス内で定義したインスタンスメンバは、
クラス内で定義したstaticメンバに直接アクセスできる?
できる
-
クラス内で定義したstaticメンバは、
クラス内で定義したインスタンスメンバに直接アクセスできる?
できない
いったんインスタンス化してからアクセスが必要
-
enumの列挙した値は暗に以下の指定がされる
public
public static
public static final
public static final
-
Enumクラスの列挙する値にダブルコーテーションはつけれる?
Enumクラスはfinalなので、定数となり、ダブルコーテーションはつけれない。
-
Enumクラスに自動的に追加されるstaticなメソッドは?
Values
valueOf
-
列挙した値(定数)すべてを配列で返すメソッドは?
values
-
引数で指定された名前をもつ値(定数)を返すメソッドは?
valueOf
-
ordinalメソッドとは?
・enum定数の名前を返す
・ハッシュコードを返す
・列挙宣言での位置を返す
ordinal
-
Enumで列記した値はどのように管理される?
・順番は管理されない
・列記した順番
・列記した順番で管理
Comparableインタフェースを実装しており、各定数は列記した順番で管理されている
-
列挙した値を参照するには「列挙型名.列挙した値」とする?
正しい
-
列挙型は、newを使ってインスタンス化できる?
できない
-
列挙型はextendsによる継承ができる?
できない、列挙型はfinalだから。
-
列挙型は
・抽象メソッドの利用
や
・インタフェースの実装
はできる?
できる。
-
ある特定のオブジェクトが特定のクラスの型をもつかどうかを判定する演算子は?
instanceof演算子
(右辺と左辺に継承関係がなければコンパイルエラー)
-
インタフェースはインスタンス化できる?
できない
-
インタフェースを利用する場合は以下のとおり?
1.実装クラスを作成
2.実装クラス側で抽象メソッドをオーバーライドして使用する
正しい
-
インタフェースで変数宣言すると暗黙的に付与される修飾子は?
・pubilc
・public static
・public static final
正しい
-
インタフェースで
・デフォルトメソッド
・staticメソッド
・privateメソッド
はそれぞれ定義できる?
正しい
-
インタフェースで抽象メソッドを宣言すると暗黙的に付与される修飾子は?
・pubilc
・public static
・public abstract
・public abstract
-
以下でコンパイルエラーになる箇所は?
1. interface Test {
2. int a;
3. protected void methodA();
4. final void methodB();
5. static void methodC();
6. }
2~5行目がコンパイルエラー。
2.定数を初期化していない
3.インタフェースで使用する抽象メソッド(処理なし)はpublic以外はコンパイルエラー
4.インタフェースを実装したクラス側で抽象メソッドをオーバーライドしなければいけない。そのためサブタイプ側でfinalは付与できない。
5.インタフェースにstaticな抽象メソッドは宣言できない。
抽象メソッド:
・publicのみ
・staticは×
・finalは×
-
インタフェースに定義する具象メソッドにstaticメソッドは定義できる?
可能
-
インタフェースに定義する具象メソッドに定義できないのは?
pubulic
protected
private
protected
-
インタフェースにprivateが定義できるのは?
具象メソッド
抽象メソッド
抽象メソッド
-
抽象クラスにfinalを付与できる?
できない。抽象クラスやインタフェースは、サブクラスや実装クラスを定義することに意味があるため。
-
以下を実行するとどうなる?
1. public class Test {
2. enum Vals { X ,
3. Y{ int method() { return 20; } }, 4. Z;
5. abstract int method();
6. }
2と4でコンパイルエラー。
列挙型で抽象メソッドを宣言することは可能だが、各列挙値の定数内で抽象メソッドのオーバーライドが必要になる。
XとZでオーバーライドされる必要がある。
-
抽象クラスを継承した具象クラスは、すべての抽象メソッドをオーバーライドする必要がある?
正しい。
-
関数型インターフェースであることを示すアノテーションは?
@FunctionalInterface
@Deprecated
@SuppresWarnings
@SafeVarags
@FunctionalInterface
-
非推奨の要素であることを示すのは?
@FunctionalInterface
@Deprecated
@SuppresWarnings
@SafeVarags
@Deprecated
-
コンパイラの警告を無効にするのは?
@FunctionalInterface
@Deprecated
@SuppresWarnings
@SafeVarags
@SuppresWarnings
-
安全でない可変長引数に対する警告を無効にするのは?
@FunctionalInterface
@Deprecated
@SuppresWarnings
@SafeVarags
@SafeVarags
-