やっと開発で自分の継承、多態を使いました
2483 ワード
*継承、マルチステートについてはjavaを学んだことがある人はよく知っていると思いますが、オブジェクト向けの3つの特性を思い出してみましょう.パッケージ、継承、マルチステートです.しかし、私たちが以前学んだのは主に継承とは何か、そして私たちがどのように継承を書くか、javaの中でextendsを使って、c++の中で使っています:、しかし、私たちが勉強した後に書くだけかもしれませんが、病気がどのように使っていないことに気づきました.特に開発を始めたばかりの頃、私たちは継承を使う必要があっても、私たちはどのように使うか分かりませんでした.ここでは私の例で開発での使用を継承します.
この間、私は蛇を書くことを勉強していました.蛇を食べるゲームを書くとき、私はほとんど半分の継承を使っていません.私もとても使いたいですが、いつ使うべきか、あるいはどのように使うべきか分かりません.だから、蛇を食べるゲームのレンガとりんごを書いていたのを覚えています.また境界があるときは(この3つは1つの色のブロックにすぎないので)継承したいと思っていましたが、最後に書き終わったらif-elseで判断したので、コードの可読性が大幅に低下しました.例えば、メインインタフェースでこの3つのものを描きたいと思っていました.私の以前のやり方は:
このように書くと機能を実現することができるが,このような実現方法は間違いなく面倒であり,コードの冗長性を増加させる.私も後でこのように書くのがよくないと思って、だから私は策略を変更して、これらをすべて1つのColorBlockクラスに統合して、このようにすればみんなはdrawの方法について書き直すだけでいいです.
実現はおおよそ次の通りである
このような定義を経て、私たちは絵を描くときに簡単になりました.
このように書くのはちょっと面倒ですが、実はかなり使い心地がよくて、これから新しい要素を加えるには、ColorBlockを継承して、そのリストに加えるだけでokになります.爽哉ではありませんか.拡張性を増やして、コードを筋道立てて見えます.
上は私がこのケースで継承と多態使用についてまとめたもので、総じて同じタイプのものを1つの親やインタフェースに抽象化し、その中に抽象的な方法を増やして、それからサブクラスがそれらの方法を実現するということです.そうすると、使用するときに親で子オブジェクトを指すだけで、残りのjavaが手伝ってくれます.彼がAppleかBlockだと判断する必要はありません.javaが手伝ってくれました.
この間、私は蛇を書くことを勉強していました.蛇を食べるゲームを書くとき、私はほとんど半分の継承を使っていません.私もとても使いたいですが、いつ使うべきか、あるいはどのように使うべきか分かりません.だから、蛇を食べるゲームのレンガとりんごを書いていたのを覚えています.また境界があるときは(この3つは1つの色のブロックにすぎないので)継承したいと思っていましたが、最後に書き終わったらif-elseで判断したので、コードの可読性が大幅に低下しました.例えば、メインインタフェースでこの3つのものを描きたいと思っていました.私の以前のやり方は:
{
List edg;//
edg.add(...);
List block;//
block.add();
List apple;//
// draw
for{
block.draw();
}
..
..
}
このように書くと機能を実現することができるが,このような実現方法は間違いなく面倒であり,コードの冗長性を増加させる.私も後でこのように書くのがよくないと思って、だから私は策略を変更して、これらをすべて1つのColorBlockクラスに統合して、このようにすればみんなはdrawの方法について書き直すだけでいいです.
実現はおおよそ次の通りである
class ColorBlock {
draw();// , ,
}
class Block extends ColorBlock{
darw(){};//Block draw
}
class Apple extends ColorBlock{
darw(){};//Apple draw
}
....
このような定義を経て、私たちは絵を描くときに簡単になりました.
List cblock;
cblock.add(new Block());
cblock.add(new Apple());
for(){
cblock.draw();
}
このように書くのはちょっと面倒ですが、実はかなり使い心地がよくて、これから新しい要素を加えるには、ColorBlockを継承して、そのリストに加えるだけでokになります.爽哉ではありませんか.拡張性を増やして、コードを筋道立てて見えます.
上は私がこのケースで継承と多態使用についてまとめたもので、総じて同じタイプのものを1つの親やインタフェースに抽象化し、その中に抽象的な方法を増やして、それからサブクラスがそれらの方法を実現するということです.そうすると、使用するときに親で子オブジェクトを指すだけで、残りのjavaが手伝ってくれます.彼がAppleかBlockだと判断する必要はありません.javaが手伝ってくれました.