第3章後半他

  • 配列はインスタンス化するときに領域を割り当てる
  • インターフェースは複数のインターフェースを拡張することが出来る
  • インターフェースを実装したメソッドの戻り型はサブクラスでもよい
    • オーバーライドも戻り値型をサブクラスに変更しただけでも可(Java5〜)
  • スーパークラスに引数のないコンストラクタが存在しない場合は、サブクラスのデフォルトコンストラクタはコンパイルエラーになる
  • staticメソッドはオーバーライドできない(再定義)
  • ボックス化よりも拡大変換を優先する
go(Integer X){}
go(long X){}

int i = 3;
go(i);
  • var-argよりも拡大変換を優先する
go(int x, int y){}
go(byte... x){}

byte b = 5;
go(b, b);
  • var-argはボックス化よりも優先される
  • ラッパークラスの拡大変換は出来ない
    • intからlongは○
    • IntegerからLongは×
    • intからLongは×
    • int>Integer>Objectは○
  • var-argは拡大変換とボックス化に対応する
  • inta={{1,2,},{3,4}};(コンパイル通るの?)
  • new long[4]
  • 配列のキャストは可能
    • String[] s;
    • Object[] o = s;
  • 初期化ブロック