質問するログイン新規登録

回答編集履歴

2

例の微小修正

2015/11/25 05:35

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  例えば、「生命→動物→脊椎動物→哺乳類→犬→ポチ」みたいにだんだん具体化していく流れがあると思います。(逆に辿ればだんだん抽象化しています。)
10
10
  そして、犬が「おすわり()」って関数を持っているなら、ポチだけでなく近所の犬のジョンも「おすわり()」できます。今、目の前にたくさんの犬がいた時、全部「おすわり()」できます。しかし、猫のタマに「おすわり()」と命令するとエラーが返ってきます。(言語によってエラーが返ってくるタイミングは異なります。コンバイル時だったり実行時だったり。)
11
- 例えば、脊椎動物が「bool 卵から生まれる()」関数を持っている場合、哺乳類では「bool 卵から生まれる()」関数を{return false;}と実装するでしょう。そして、そこで実装しておけば、一々犬や猫、ましてポチやタマでは「bool 卵から生まれる()」関数を実装する必要がありません。
11
+ 例えば、脊椎動物が「bool 卵から生まれる()」関数を持っている場合、哺乳類では「bool 卵から生まれる()」関数を{return false;}と実装するでしょう。そして、そこで実装しておけば、一々犬や猫では「bool 卵から生まれる()」関数を実装する必要がありません。
12
12
  これが、継承やポリモーフィズムの機能です。
13
13
  大きな違いだけ把握しておけば、細かい違いを一々気にしないで一緒くたに取り扱えるって本当に便利です。
14
14
 

1

具体例追加

2015/11/25 05:35

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -8,7 +8,9 @@
8
8
 
9
9
  例えば、「生命→動物→脊椎動物→哺乳類→犬→ポチ」みたいにだんだん具体化していく流れがあると思います。(逆に辿ればだんだん抽象化しています。)
10
10
  そして、犬が「おすわり()」って関数を持っているなら、ポチだけでなく近所の犬のジョンも「おすわり()」できます。今、目の前にたくさんの犬がいた時、全部「おすわり()」できます。しかし、猫のタマに「おすわり()」と命令するとエラーが返ってきます。(言語によってエラーが返ってくるタイミングは異なります。コンバイル時だったり実行時だったり。)
11
+ 例えば、脊椎動物が「bool 卵から生まれる()」関数を持っている場合、哺乳類では「bool 卵から生まれる()」関数を{return false;}と実装するでしょう。そして、そこで実装しておけば、一々犬や猫、ましてポチやタマでは「bool 卵から生まれる()」関数を実装する必要がありません。
12
+ これが、継承やポリモーフィズムの機能です。
11
- これがポリモーフィズムと呼れる仕組みです。細かい違いを一々気にしないで一緒くたに取り扱えるって本当に便利です。
13
+ 大きな違いだけ把握しておけ細かい違いを一々気にしないで一緒くたに取り扱えるって本当に便利です。
12
14
 
13
15
  グローバル変数は、全ての関数からアクセスできる変数です。プログラムの開始~終了まで有効です。
14
16
  対して、言語によって異なりますが、概ねローカル変数はそれを定義している{}ブロック内だけで有効な変数です。またメンバ変数はそれを定義しているクラスのインスタンスの一部です。