javaの抽象クラスについて
Posted: 2012年11月09日(金) 16:53
javaをコツコツと勉強しているのですが、抽象クラスの項目で、疑問に思っていることがあります。
abstract修飾子がつきますよね!
それで、new ○○というようにオブジェクトを新たに作成できませんよね!(ここら辺の理解はしていますし、なんか後々メリットがあるような気がしてます)
そして、配列や変数を準備してサブクラスのオブジェクトを指す(意味がわかるかな?)ことはできるとかいてありました(これもなんか後々メリットがありそうな気がしてます)
また、抽象クラスの抽象メソッド(abstract 戻り値 メソッド名(引数))をオーバーライドしますよね。
ここでなんですけど、別に普通にクラスを作って継承(extends スーパークラス)して、サブクラスでオーバーライドさせれば結果は同じになりますよね?
そして、コードを書いてて思ったのですが、抽象クラスを継承すると、抽象クラス内にあった抽象メソッドがオーバーライドされないとエラーが消えてくれません。
この点にこそ抽象クラスの核心があるのでしょうか?
参考書にはわかりやすく書けると書いてありましたが、わたし的には少々疑問です。
長文ですので、質問をまとめます。(数字が小さい程優先して聞きたい質問です)
1、抽象クラスを使うにあたって、普通のクラスとは違うところ(特に目立つ相違点)、また、それはどのような便利な点、または不便な点はどこなのか?
2、上記の長文でおかしなところ(間違っている記述)はないか、あれば指摘していただき本当はどうなのか教えていただきたいです。
3、抽象クラスは、どのようなシチュエーションで役に立つのでしょうか?
=======ここからはあまり関係のない話なのでスルーしていただいても結構ですーーーーーーーーーーーー
4、WEBサーバーはjavaで作れますか?
5、まとめた質問以外で上記の長文のなかで答えられる(単に私が質問し忘れていると思われた)箇所に対してお答えいただけたら嬉しいです。
よろしくお願いいたします。
abstract修飾子がつきますよね!
それで、new ○○というようにオブジェクトを新たに作成できませんよね!(ここら辺の理解はしていますし、なんか後々メリットがあるような気がしてます)
そして、配列や変数を準備してサブクラスのオブジェクトを指す(意味がわかるかな?)ことはできるとかいてありました(これもなんか後々メリットがありそうな気がしてます)
また、抽象クラスの抽象メソッド(abstract 戻り値 メソッド名(引数))をオーバーライドしますよね。
ここでなんですけど、別に普通にクラスを作って継承(extends スーパークラス)して、サブクラスでオーバーライドさせれば結果は同じになりますよね?
そして、コードを書いてて思ったのですが、抽象クラスを継承すると、抽象クラス内にあった抽象メソッドがオーバーライドされないとエラーが消えてくれません。
この点にこそ抽象クラスの核心があるのでしょうか?
参考書にはわかりやすく書けると書いてありましたが、わたし的には少々疑問です。
長文ですので、質問をまとめます。(数字が小さい程優先して聞きたい質問です)
1、抽象クラスを使うにあたって、普通のクラスとは違うところ(特に目立つ相違点)、また、それはどのような便利な点、または不便な点はどこなのか?
2、上記の長文でおかしなところ(間違っている記述)はないか、あれば指摘していただき本当はどうなのか教えていただきたいです。
3、抽象クラスは、どのようなシチュエーションで役に立つのでしょうか?
=======ここからはあまり関係のない話なのでスルーしていただいても結構ですーーーーーーーーーーーー
4、WEBサーバーはjavaで作れますか?
5、まとめた質問以外で上記の長文のなかで答えられる(単に私が質問し忘れていると思われた)箇所に対してお答えいただけたら嬉しいです。
よろしくお願いいたします。