- PR -

抽象クラスについて。

1
投稿者投稿内容
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-04-12 03:48
普通抽象クラスはインスタンスは作成できませんが。。。。
抽象クラスを継承してabstract定義されているメソッドを定義しなおせば抽象クラスではなくなるので、インスタンスを作成できこれにより、抽象クラスの変数としてインスタンスを作成できるらしいですが
これによりいったい何ができるようになるのですか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-14 12:53
重複スレ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44365&forum=12

経過時間からすると 「建て直し」 でしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2008-04-14 15:15
こんにちは。

引用:

omopurikeさんの書き込み (2008-04-12 03:48) より:
普通抽象クラスはインスタンスは作成できませんが。。。。
抽象クラスを継承してabstract定義されているメソッドを定義しなおせば抽象クラスではなくなるので、インスタンスを作成できこれにより、抽象クラスの変数としてインスタンスを作成できるらしいですが
これによりいったい何ができるようになるのですか?



細かい言語上の制約だけ理解しても、”どんな恩恵があるか”は
オブジェクト指向が理解できなければ分からないでしょう。

オブジェクト指向(プログラミング)では、
人間の認知しやすい、現実あるいは概念上の「モノ」という捕らえ方をします。
世の中にはいろいろな「モノ」がありますが
人間はそのうち関心のある特徴を拾い出して抽象的に扱うことができます。

(この例えで、理解してもらえるかは疑問ですが…)
たとえば、「クルマ」を考えてみると
「乗用車」・「バス」・「トラック」・「消防車」…などいろいろありますが
タイヤがついていて、アクセルを踏めば動き出し、ハンドルをきれば曲がる…等々
「クルマ」としての特徴は同じです。

運転手は(細かく言えば違いますが)とりあえず、エンジンを掛けて、アクセルを踏んで、ハンドルを切っていれば
どんな「クルマ」でも運転できます。(もちろん公道を走る場合には免許が必要ですよ)

抽象クラスを「クルマ」、
具象クラスを「乗用車」・「バス」・「トラック」・「消防車」などと考えてみてください。

抽象クラス「クルマ」の変数に、具象クラスの「バス」や「消防車」のインスタンス(実体)を入れるということは
具象クラスのインスタンスを操作(運転)するのには、「バス」だの「消防車」だの気にしなくても
抽象クラスの「クルマ」として扱うことができるということです。

冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2008-04-14 15:55
じゃんねっと氏のリンク先の未記入氏が書いたように、まずインターフェイスについて理解すれば理解できるようになると思う。
でね、すでに書いてある通りだから、理解するように努力しなけりゃ理解するのは無理。
聞くだけで理解できるはずは無いんだから、まずは真面目に勉強しなさい。

# 勉強しているうちに、インターフェイスが突然「インターフェイス」になるんですよ。
# これは他の物事についても同じで、勉強してない人には分からないだろうね。
1

スキルアップ/キャリアアップ(JOB@IT)