とあるプログラミング入門サイトでの、継承を説明するコードです。ご査収下さいませ。
スレッド
会話
逆だった、、、_(┐「ε:)_どちらにせよ支配されている◀︎
1
どこの素人が書いたんだこれ…となりますね。
そしてクソコードは拡大再生産されていくのです…
1
4
32
返信を表示
学校が生徒を継承するということは
生徒が持っている性質を学校は全て持っているということになります
(学校は生徒である という関係)
親になる生徒クラスに「登校する」や「授業を受ける」メソッドが実装されると、学校も「登校する」し、「授業を受ける」ことができるようになると考えると……
1
30
123
返信を表示
返信先: さん
継承の爆死を描いたこちらのクソコード動画も観てみてね
引用ツイート
ミノ駆動
@MinoDriven
·
クソコード動画「継承」
このスレッドを表示
メディアを再生できません。
再読み込み
49
164
返信先: さん
やはり実務経験が豊富な方の説明のほうがわかりやすいですね
引用ツイート
増田 亨.
@masuda220
·
Software Design 3月号 第1特集
第1章
抽象クラス → 「詳しい説明は4章で」
第4章
抽象クラス → 「使うな」
第1章
継承 → 「使い分けは5章で」
第5章
継承 → 「使うな」
8
16
逆じゃん....はっず
返信先: さん
めんどいけど素直に高橋先生の『やさしいJava』買えば良いのに。。。。
歳取ってから思うけど地味だけどあれは良書だと思う。
カガミはあれをメモ帳とコマンドプロンプトで学習しました。。。。
(;´Д`)
3
23
返信先: さん
これは、生徒名簿を作った後、仕様変更で科目が必要になった と想像。しかし、そうはならんやろ。
実際は、どこかのサンプルコードを説明しやすい用語に置き換えた、という感じでしょうか。
1
1
現実問題、これらを継承してプログラミングスクールが成り立ったりするから、いろいろ地獄。
2
返信先: さん
なんで学校が生徒を継承してるのかも疑問だが、インデントの付け方が気になる
大手プログラミングスクールの記事は初心者がよく目にする可能性が高いから、もう少し品質を上げてもらいたいですね!
1
1
19
ボクもインデントが気になりました!(笑)
1
返信先: さん
継承の理解を挫折させるには十分なコードですね
日本人の生徒が一人の学校が乱立していく…。
(わずか数行なのに全行ツッコミどころが。このサイトでは学ばせたくないなぁ。)
1
9
返信先: さん
継承は機能追加と考えればまあわかりやすいかな。乗用車→タクシーみたいな感じで。抽象的な概念を例に出すと逆に混乱する気がする…多重継承は言語によっては禁止されるから基本使わない方向でいいんじゃないかな
1
1
3
継承は「機能追加」ではないです。名前のとおり「属性の継承」に近いです。
つまり本質的に「同一」な者同士でしか継承関係は成立してはいけなく、「機能追加」のための機能ではないです。
1
1
15
返信を表示
返信を表示
返信先: さん
あるシステムで、PersonというModelクラスがあったのだけれど。システム全体でPersonModelクラスとほぼ同じ項目のModelが30個以上もあってびっくりした。ひとつにできない理由がわからん…。でもリファクタリングして継承してひとつにしてみたいなことをすると、確実に爆発する予感。
1
確かにこの二つが同じクラス階層に入る可能性は絶対ないとは言い切れませんね。ただ、その時点で親クラスをCustomer に切り出して2つは兄弟にするか、Customer名前空間にBaseで親作って皆入れるのが私の好みかな。まあこのコードがそれを想定してるはずはありませんが
返信先: さん
これなら納得できた
public class PrivateSchool extends School {
....
}
public class PublicSchool extends School {
....
}
1
返信先: さん
今日読んだ漫画に
プログラマに求められるもの
「クソコードを書かないこと
それと、他人のクソコードをリファクタリングし始めないこと…直すとなぜか動かなくなるw」
を思い出しました。
1