java入門 第13回 クラス継承のおきて

第13回のポイント

アクセス修飾子

public 自由にアクセスできる
private 自分のクラスのみでアクセスできる
protected 自分のクラス、サブクラスでアクセスできる

オーバーライド

サブクラスに、スーパークラスにあるメソッドや変数と同じ名前で定義することを「オーバーライド」と言います。

final修飾子 

クラス、メソッドにfinal修飾子をつけると、クラスの継承、メソッドのオーバーライドを禁止する 変数にfinal修飾子をつけると定数になる

superとthis 

スーパークラスのメンバにアクセスするときにはsuper.xxx
サブクラスのメンバにアクセスするときにはthis.xxx(省略可能)

スーパークラスのスーパークラス

Objectクラス
継承をしないクラスのスーパークラスは
Objectクラス
toStringメソッド等Objectクラスにある
メソッドを利用できる

googleドライブ上にこの講座のプログラムコード、スライドデータを置いています。 https://drive.google.com/folderview?id=0B7jeGhcD18UYM0JtUG8xQm1CeU0&usp=sharing 

以下は実際にビデオの中で作成したプログラムです。

public class Study13 {
 public static void main(String[] args) {
  Human hm = new Human();
  Human hm2 = hm;
  hm.seibetsu="男";
  hm2.seibetsu="オス";
  hm.showSeibetsu();
  hm.walk();
  hm.talk();
  hm.showSeibetsu();
  System.out.println(hm);
 }
}
class Monky{//猿クラス
 protected String seibetsu;//性別
 void showSeibetsu(){//性別を表示
  System.out.println("性別は"+seibetsu+"です");
 }
 void walk(){//歩く
  System.out.println("手も使いながら2足歩行で歩いています");
 }
}
class Human extends Monky {//人間クラス
 public String toString(){
  return "人間クラスです";
 }
 String seibetsu;//オーバーライド
 void showSeibetsu(){
  super.seibetsu="オス";
  this.seibetsu="男";
  System.out.println(super.seibetsu);
  System.out.println(this.seibetsu);
 }
 void talk(){//話す
  System.out.println("こんにちは!");
 }
 void walk(){//歩く オーバーライド
  System.out.println("完全2足歩行で歩いています");
 }
}