こんにちは。高校生のぴぷりんです。
僕はJava/JavaScriptを中心にやっています。

オブジェクト指向の言語にはいろいろありますが、
そのなかでPythonなるものがあります。
PerlやRubyは書籍も多く知名度が高いのですが、
Pythonあまり見かけることがありません。
そこでPythonをやっている人に質問です!
Pythonの利点・欠点を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

回答というよりも意見です。


最近Pythonを使い始めました。個人的にかなり気に入っています。きっかけは動的なWebページ作成で、最初はPerlで作っていた物の、どうもクラスを作ったり派生させたりするのにコードが読みにくい感じがしたのでした。
調べたところPythonが面白そうだったので使ってみました。慣れるのは他の言語に比べても早い方でしたね。
日本語の解説書がもっと増えると、日本でももっと普及するかもしれないですね。
データベースと連携したWebのシステムを作成しました。今後も自分の主力スクリプトとして使い続けようと思います。ライブラリも充実していて助かります。
欠点は・・・日本では普及してないって所かな?
何はともあれ使ってみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Webページ作成に使えるのは、おもしろそうですね。
是非自分のWebページにも使ってみようかと思っています。
僕はよくいろいろな本屋に行ってチェックしているのですが、日本語の解説書はオライリーしか見たことがありません。
これからどんどん普及していくといいですね。

お礼日時:2002/04/07 13:06

参考URLを見てくださいね



参考URL:http://www.python.jp/Zope/intro/
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。

また他に、実際に使っている方の解答もまだまだお待ちしております。

お礼日時:2002/04/06 11:55

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPythonリリースコンパイル(appとexe)

お世話になっています.
Pythonでプログラム(スクリプト?)を書いています.

まず当方の開発環境は,
Macintosh(Mac OS X Ver. 10.6.8)
プロセッサ 2.7GHz Intel Core i7
です.

Pythonをリリースコンパイル(.appと.exe化)したいのですが,やり方が分かりません.
すぐに情報がほしいので,以下の1つでもご存知のものがあればご回答をお願い致します.
よろしくお願いいたします.


1,【優先順位:高】
◎pyファイルをapp化したい(利用環境:py2app)

py2appを利用し,コンパイルしたのですが全てがコンパイルできません.
以下のモジュールをインポートしています.
import sys
import time
import math
import codecs
import Tkinter
import tkMessageBox
import tkFileDialog as tkFileDialog
import thread

app化されたファイルを開くと,Windowは表示されるのですが機能しません.
ボタンをクリックするとファイルを読み込み,データを計算し書き出すコードなのですが,
その処理が一切されません.



2,【優先順位:高】
◎pyファイルをapp化したい(利用環境:py2app)

py2appを利用し,コンパイルしたのですが全てがコンパイルできません.
以下のモジュールをインポートしています.
import sys
import time
import math
import codecs
import Tkinter
import tkMessageBox
import tkFileDialog as tkFileDialog
import MeCab
import thread

app化されたファイルを開くと,Windowは表示されるのですが機能しません.
ボタンをクリックするとファイルを読み込み,データを形態素解析し,それを計算したものを書き出すコードなのですが,
その処理が一切されません.



3,【優先順位:中】
◎pyファイルをexe化したい(利用環境:py2exe)

py2exeを利用し,コンパイルしたいです.
以下のモジュールをインポートしています.
import sys
import time
import math
import codecs
import Tkinter
import tkMessageBox
import tkFileDialog as tkFileDialog
import MeCab
import thread

上の2をexe化したいのですが,そもそもapp化が出来ないのでまだ実験していません.
やり方をご存知のかたがいらっしゃいましたらこちらの回答もお願い致します.


-------------------
現在,py2appのみの実験ですが,別にapp化出来るのであればどのようなものを使っても大丈夫です.
何か他のツールをご存じの方がいらっしゃいましたらご教授お願い致します.

よろしくお願いいたします.

お世話になっています.
Pythonでプログラム(スクリプト?)を書いています.

まず当方の開発環境は,
Macintosh(Mac OS X Ver. 10.6.8)
プロセッサ 2.7GHz Intel Core i7
です.

Pythonをリリースコンパイル(.appと.exe化)したいのですが,やり方が分かりません.
すぐに情報がほしいので,以下の1つでもご存知のものがあればご回答をお願い致します.
よろしくお願いいたします.


1,【優先順位:高】
◎pyファイルをapp化したい(利用環境:py2app)

py2appを利用し,コンパイルしたのですが全てがコ...続きを読む

Aベストアンサー

アプリケーション化だけができなくて、スクリプトは正常に動くのであれば、次の方法があります。多分GUIがあっても動くはずです。

1) 標準で入っているAutomatorの「シェルスクリプトを実行」でPythonのスクリプトを実行できます。アプリケーションとして保存します。

2) Platypusでも可能です。こちらの方が自由度が高いように思います
http://sveinbjorn.org/platypus

QPerl・Python・Rubyのどれがおすすめ?

小さいプログラムであればコンパイラ言語より簡単に作成できると聞いたので、インタプリタ言語を一つ習得しようと思っているのですが、Perl・Python・Rubyのうちどれを選ぼうか悩んでいます。

私は現在、情報系学科の大学生で、今までにPascal、CASLII、C、Perl、Javaを習いました。どれも課題をこなすために使った程度で、どれも1年以上継続して利用していません。

以下が、それぞれの言語に対する認識です。初心者の意見なので間違っていることが多いかもしれません。

[Perl]
-長所
・一度勉強しているため、勉強し始めやすい。
・習い始めるにあたり、一番初めに読もうと考えている「初めてのPerl 第5版」の評価が高い。
・参考となるものが多い。
-短所
・ソースが見にくいと聞いたことがある。

[Python]
-長所
・Perlより後にできた言語なので、Perlより洗練されてて高機能?
・Perlとは違い、同じことをするプログラムのソースは似ると聞いたことがあり、こっちの方が使い易い?
-短所
・Perl同様、Pythonを始めるなら一番最初に読もうと思う「初めてのPython 第3版」の訳が悪いという噂がある。また、「初めてのPerl」に比べると、ページ数が異常に多い。

Rubyについては聞いたことがある程度でほとんど知りません。

また、コンパイラ言語としてはC#を習得しようかと考えています。

以上から、Perl・Python・Rubyのうちどの言語を習得するのがいいと思いますか?個人的な意見でも構いません。理由を詳しく書いていただけると、選択の参考になるのでありがたいです。

できるだけたくさんの意見が聞きたいので、様々な回答をお願いします。

小さいプログラムであればコンパイラ言語より簡単に作成できると聞いたので、インタプリタ言語を一つ習得しようと思っているのですが、Perl・Python・Rubyのうちどれを選ぼうか悩んでいます。

私は現在、情報系学科の大学生で、今までにPascal、CASLII、C、Perl、Javaを習いました。どれも課題をこなすために使った程度で、どれも1年以上継続して利用していません。

以下が、それぞれの言語に対する認識です。初心者の意見なので間違っていることが多いかもしれません。

[Perl]
-長所
・一度勉強してい...続きを読む

Aベストアンサー

Perlの長所は、CPANという膨大なライブラリがあることと、ウェブ上に情報が多いことですね。逆に言うと、Python、Rubyに比べての長所はそれだけだと思います。

Pythonの長所はお書きの通りでしょう。日本語書籍は最近少し増えましたが、Perl/Rubyに比べるとまだ少ない。

Rubyの長所は、
>・Perlより後にできた言語なので、Perlより洗練されてて高機能?
と、オブジェクト指向を最初から考えてそれに徹底した言語ということでしょうか。
Railsというフレームワークがあるというのもありしたが、現在では他の言語でも類似のフレームワークが出てきている。
入門書としては「たのしいRuby」が定番です。 http://www.amazon.co.jp/dp/4797336617 入門した後は、「Ruby逆引きハンドブック」 http://www.amazon.co.jp/dp/4863540221 とか。あと「るびま」というウェブマガジンもあります。 http://jp.rubyist.net/magazine/
短所はPerl/Pythonに比べると全世界的には使われ所が少ない、例えば普通にLinuxをインストールするとPerl/Pythonは必須で入ることが多いと思いますが、Rubyは必須でない。あ、IPAが言語仕様のISO化を目指して動き出してますね。Perl/PythonはまだISO規格はないかと。http://sourceforge.jp/magazine/09/12/03/1045204

まとめると、PythonとRubyがライバルで、Perlはちょっと違う立ち位置ですね。元々オブジェクト指向と、後付けオブジェクト指向とか、JavaVM(Jython,JRuby)や.NET(IronPython,IronRuby)上で動くかどうかとか(Perlは動きません)。

また、どの言語も、現在多く使われているバージョンから次のバージョンに移行しようとしているところ(Perl6は未リリース)なので、最新バージョン(Python3,Ruby1.9)に対応した本やウェブ情報が少ないかと思います。

あと、日本語処理は、PerlやPythonだと事実上utf-8のみ。Rubyは日本発と言うこともあって、Shift_JISやEUC-JPにも対応しています。まあ、最初に全部utf-8に変換して処理すればいいので、文字コードが混在したデータを混在したまま処理したいとか言わなければ、あまりデメリットにはならないでしょう。

Rubyの情報が多くなってしまいましたが、PythonかRubyをお勧めします。

Perlの長所は、CPANという膨大なライブラリがあることと、ウェブ上に情報が多いことですね。逆に言うと、Python、Rubyに比べての長所はそれだけだと思います。

Pythonの長所はお書きの通りでしょう。日本語書籍は最近少し増えましたが、Perl/Rubyに比べるとまだ少ない。

Rubyの長所は、
>・Perlより後にできた言語なので、Perlより洗練されてて高機能?
と、オブジェクト指向を最初から考えてそれに徹底した言語ということでしょうか。
Railsというフレームワークがあるというのもありしたが、現在では...続きを読む

QPythonで、C言語のモジュールを利用したい!

初めまして。
どなたか回答いただければ幸いです。

Pythonで利用できるモジュールを、C言語で作成したいと思っているのですが、方法が良くわかりません。

現在、Windowsで、CygwinのGCCを用いて、C言語をコンパイルしています。
GCCでコンパイル→DLLファイル作成→Pythonで利用?
という大まかな流れかな~と思いまして、
見よう見まねで、
$gcc -shared test.o -o testmodule.dll
というコマンドでDLLファイルを作成して、それをPythonで認識できるフォルダに格納して、Pythonのプロンプトで、
>>>import testmodule(あるいは、import testmodule.dll)
とかやったのですが、
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
と言われてしまいました。

鋭意調査中ですが、ご存知の方がおられましたら、
ご教授お願いいたします。

Aベストアンサー

みようみまねってのが非常に気になるのですが、
#1の方が提示されたのでも良いですし

Python インタプリタの拡張と埋め込み
http://www.python.jp/doc/release/ext/

とかには目を通した上で作業されているのでしょうか?

もっとも以下のページが簡潔にして必要最低限のことを
まとめているようです

西尾泰和のブログ @ Cybozu Labs: Python拡張の作り方
http://labs.cybozu.co.jp/blog/nishio/2007/06/python.html


あ、注意しておきますが、Python本体のコンパイルに使われた
コンパイラと同じ物を使わないとだめですよ。
(cygwinの)gccを使いたいのなら、cygwinのパッケージにある
Pythonが対象になります。
PythonのメインのページにあるWindows用の
バイナリはVC++(7.1?)でないとダメです。

>ご教授お願いいたします。
こういう場合は教示を使います。

Qオブジェクト指向開発とコンポーネント指向開発の違いに関して

オブジェクト指向開発から派生した開発としてコンポーネント指向開発というのがあると思いますが、それらの違いがあまりはっきりわかりません。粒度がコンポーネントの方が大きい、プラットホームに限定されない、継承などの難しい(?)概念が省かれ簡略化された部品、再利用を前提としたプラグアンドプレイができるような開発とありますが、その他にどのような特徴があるのでしょうか?わかりやすく教えてください。

Aベストアンサー

あなたのお書きになっていることで、オブジェクト指向とコンポーネント指向の違いは十分だと思いますが、まだ何か具体的な疑問点がおありでしょうか?

QPython error C2061: 構文エラー : 識別子 'Py_uintptr_t'

WindowsXPでPython2.6のC Extensionを作ろうとコンパイルすると、
以下のエラーが出ました。
何が悪いのでしょうか?

samplemodule.c
c:\python26\include\pyport.h(89) : error C2061: 構文エラー : 識別子 'Py_uintptr_t'
c:\python26\include\pyport.h(89) : error C2059: 構文エラー : ';'
c:\python26\include\pyport.h(90) : error C2061: 構文エラー : 識別子 'Py_intptr_t'
c:\python26\include\pyport.h(90) : error C2059: 構文エラー : ';'

Aベストアンサー

そのsamplemodule.cはどうなってますか?

気になる点として
http://www.python.jp/doc/nightly/ext/simpleExample.html
> #include <Python.h>
> これで、Python API を取り込みます (必要なら、モジュールの用途に 関する説明や、著作権表示を追加します)。 Python は、システムによっては標準ヘッダの定義に影響するような プリプロセッサ定義を行っているので、 Python.h は いずれの標準ヘッダよりも前にインクルードせねばなりません。

というのがあります。
ただ、WindowsのVCでstdafx.hがからむと、ややこしかった覚えがあります。

Qイベントドリブンとオブジェクト指向

現役S.E.です。イベントドリブンとオブジェクト指向のことを説明する必要に迫られています。しかし、私自身知識が混乱してしまい、説明に自信がないので教えてください。

オブジェクト指向は、構造化プログラミングに変わって登場してきた考え方ですよね。クラスを設計してイベントやプロパティ、メソッドを実装してインスタンスを派生していくプログラミング方法であると認識しています。

それから、イベントドリブンはマウスでのクリックとかキーの押下などのイベントに応じて、様々なアクションを起こすという考え方だと認識しています。

それで、ちょっと考えるとイベントドリブンを実現するためには、アクションやメソッドがないと動かせないと思うので、オブジェクト指向でないと実現できないと思うのですが、構造化プログラミングなのにイベントドリブンで動かすみたいなケースってあるのでしょうか?

イベントドリブンという考え方を、オブジェクト指向と組み合わせて開設してしまっていいのかどうかがよく分からなくなってしまいました。
どんな風に解説したらいいか、アドバイス頂ければ幸いです。

現役S.E.です。イベントドリブンとオブジェクト指向のことを説明する必要に迫られています。しかし、私自身知識が混乱してしまい、説明に自信がないので教えてください。

オブジェクト指向は、構造化プログラミングに変わって登場してきた考え方ですよね。クラスを設計してイベントやプロパティ、メソッドを実装してインスタンスを派生していくプログラミング方法であると認識しています。

それから、イベントドリブンはマウスでのクリックとかキーの押下などのイベントに応じて、様々なアクションを起こす...続きを読む

Aベストアンサー

自分の回答を見直してみると分かりにくかったので補足します。

オブジェクト...
発想の出発点はデータと操作を一まとめにすることですが、さらに抽象化を進めて、とにかく何らかの機能を持ち、外部との交流手法(インターフェース)を備えたものですね。
つまり、自動車もオブジェクトです。また自動車のエンジンもオブジェクトです。

イベントドブリンは、もともとあった割り込みという概念をさらに進めて、イベントをいちいち調べて、処理の実行を行うのではなく、イベントに対する処理をあらかじめ用意しておく。
つまりイベント→処理という流れを基本とする考え方ですよね。

もちろんこの処理に対してオブジェクトを使うことはかまいませんけど、普通の関数でもいいわけですね。

私の言いたかったことはそういうことです。

QCygwinにRuby/Pythonの最新版をインストールする

CygwinにRuby/Pythonの最新版をインストールする

開いていただきありがとうございます。
このたび「CygwinでRuby1.9, Python3.1を利用できるようにしろ」と言い渡されたのですが、
最新版のCygwinをセットアップにインストールされていたのはRuby1.8, Python2.6でした。

恐らくソースファイルを用意してCygwin用にコンパイルする必要があるのだと思いますが、
根っからのWindowsユーザーのため、これをどのように行えばいいのか分かりません。
お手数ですが具体的方法をご教示いただけませんでしょうか?

Aベストアンサー

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby+Install+Guide%3A%3ACygwin+%28%A5%BD%A1%BC%A5%B9%A4%AB%A4%E9%29
色々情報が古いですが、基本の操作方法は同じです

> 具体的には ncurses、readlineの2点を~
→ CygwinのSetupからインストールできます。

Rubyに限らず、ソースコードで配布される大抵のものは次の手順でインストールします。
1) 設定用のスクリプトを実行する。
追加で機能を有効/無効にしたい時は、オプションを付ける。
→ ./configure --help とすると、利用可能なオプションが表示される
2) make を実行
3) 2)のmake 成功したら make install を実行
その前に make test で正常に動作するか確認してもよい

例えば、既存のruby1.8と共存させるために、実行ファイル名に1.9を付けるようにするには、 ./configure に --program-suffix=1.9 というオプションを付けて実行します。


Pythonも同様ですが、もう一つの方法として、 Cygwin Portsからバイナリでインストールする方法があります。
http://sourceware.org/cygwinports/

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby+Install+Guide%3A%3ACygwin+%28%A5%BD%A1%BC%A5%B9%A4%AB%A4%E9%29
色々情報が古いですが、基本の操作方法は同じです

> 具体的には ncurses、readlineの2点を~
→ CygwinのSetupからインストールできます。

Rubyに限らず、ソースコードで配布される大抵のものは次の手順でインストールします。
1) 設定用のスクリプトを実行する。
追加で機能を有効/無効にしたい時は、オプションを付ける。
→ ./configure --help とすると、利用可能なオプシ...続きを読む

Qオブジェクト指向の利点とは?

汎用機でCOBOLのSEを10数年やってました。(今は自営業)
COBOLはプロセス型の言語といわれているのに対して
C言語はオブジェクト指向型の言語といわれています。

私はC言語やJAVAで開発したことはないのですが、
C言語、すなわちオブジェクト指向の利点ってなんでしょう?
JAVA、C言語はオブジェクト指向ですよね。

私はソフトウェア開発技術者の資格など持っていますのでオブジェクト指向の表面的な意味は分かります。
ですが実際、アプリ開発時・運用時にどのような利点があるのかがイマイチ分かりません。
「どっちでもいいんじゃないか」なんて思ってしまいます。
プロセス指向(VB、COBOL等)とオブジェクト指向(C言語、JAVA)の差異って何なんでしょう。

よろしくお願いします。

Aベストアンサー

当方は、単なる学部卒の人間ですので、もっとおおざっぱな回答を試みます。(ていうか、そういった事しか出来ないだけなんですが。)

>C言語はオブジェクト指向型の言語といわれています。

C言語も、VBも、COBOLも、確か、同じ「手続き型言語」の一種ですよね。で、それとは別に「非手続き型言語」が何タイプかあり、その中の一つとして、オブジェクト指向型の言語(C++やJavaやSmalltalkなど)があったものと思われます。(以上、第3世代に属する高水準言語です。)

最近も、以下のJavaカテゴリの方で、「オブジェクト指向とは何たるか?」について、回答しておきましたので(#5の所)、そちらの方も参考にされたら、と思います。

「教えて下さい☆」
http://oshiete1.goo.ne.jp/qa2864855.html

上記の過去ログ内にも書かれていますが、「オブジェクト指向の利点」の一つに、「デザインパターンを利用することが出来る」というのが挙げられます。このデザインパターンとは、手短にいえば、過去の熟練したソフト設計者の方々が、数々の試行錯誤の上に得られた、オブジェクト指向設計を行う上で定石とも言える効率的な設計手法(パターン)をまとめたものです。当初は、C++を元に作成され、一番最初に提唱した4人の方々に敬意を表して、GoFパターンとも呼ばれています。(GoFとは、Gang of Four「4人のギャング」の頭文字を取ったもの。)

現在では、この汎用的な23のデザインパターン以外にも、Javaで言えば、J2EEの技術に特化した「J2EEパターン」なるものも存在したりします。こういった事から、若手であまり設計などの経験に乏しい技術者でも、そのような便利な設計手法を利用することができ、一から過去の設計者の方々が経験した、様々な成功や失敗などの体験を繰り返すことがなくなるわけですね。(まあ、実際にはあくまでも手段であって、全部のデザインパターンを使うといったこともないですし、かなり抽象的で難しい事もあってか、逆に使用しない方がいい、といった場合もあるらしいですが。)

あとそれから、以下の書籍の15ページの所に、次のような記述があります。

「ゼロから学ぶC/C++ フリーのコンパイラで気軽に始めよう!」
(編:日経ソフトウェア編集,発行:日経BP社,2005年1月24日 第1版第1刷発行)

「(前略)いったい、オブジェクト指向プログラミングができると何がうれしいのでしょうか。端的に言えば、効率よくプログラムを開発できるようになるのです(図7)。そもそもプログラムをオブジェクトの集合体としてとらえることで、プログラムの構造がぐっと見やすくなります。2000個の変数と1000個の関数から構成した売上管理プログラムだって、わずか数十種類のクラスに整理することが可能なのです。これが開発効率を高めるのは容易に想像できるでしょう。開発時だけでなく、後からプログラムの機能を追加したり、改造を加えることも容易になります。(後略)」

この文章自体がまさに、「オブジェクト指向の利点」を言い表していますね。同じページ内にも「*19 もちろんC言語でも再利用可能なソフト部品を実現できますが、C++のクラスのほうが継承(後述)などによって、より再利用しやすい部品を作ることができます。」といった記述もあります。

最後に、現在Javaの開発においては、Strutsを始めとした「MVCフレームワーク」が主流となっていますが、これ自体もまた、実際には「MVCパターン」というデザインパターンの一種を活用したものとなっています。このことに関して、以下の過去ログでは、「それじゃあ、なぜそのような新しい技術であるフレームワークを利用するのか?」といったような質問がなされています。

「ストラッツ(Struts)って本当にいいの?」
http://oshiete1.goo.ne.jp/qa2049016.html

ここで回答された方々の内容いずれもが、まさに「オブジェクト指向の利点」となっていますね。実際に、M(Model)とV(View)とC(Controller)の3つに分けることによって、担当する部分をより明確にして、切り分けているのです。部品化による恩恵が、こういった所にも表れているわけですね。

参考URL:http://www.ascii.co.jp/books/books/detail/4-7561-4155-2.shtml

当方は、単なる学部卒の人間ですので、もっとおおざっぱな回答を試みます。(ていうか、そういった事しか出来ないだけなんですが。)

>C言語はオブジェクト指向型の言語といわれています。

C言語も、VBも、COBOLも、確か、同じ「手続き型言語」の一種ですよね。で、それとは別に「非手続き型言語」が何タイプかあり、その中の一つとして、オブジェクト指向型の言語(C++やJavaやSmalltalkなど)があったものと思われます。(以上、第3世代に属する高水準言語です。)

最近も、以下のJavaカテゴ...続きを読む

QPython 2.7で、SQLite3の全文検索

結論だけでいいです。

Python 2.7で、SQLite3のFTSを使える □YES/□NO

当然使えると思って前準備まで全部行ったのに、実際に登録しようとしたら出来ず調べると、ソースからコンパイルとか何かを介するとか何かをダウンローダするとか...

これでは私的にはNOです。

Aベストアンサー

No.1です。

> Knoppix上での解決方法も教えて下さい

puppy linux上の環境では、python 2.7.3でも前述のサンプルソースのコメントアウトだけで動作しました。つまりpythonではなく、インストールされているsqlite3のバージョンに依存するということになります。


通常ですと、sqlite3の最新版のソースをもってきてコンパイルし、インストールして、作成されたsqlite3.soを元のファイルと置き換えれば良いことになります。

./configure --prefix=sqlite3のインストールされているディレクトリ
make
make install

ただしKnoppixってCD-ROM(DVD-ROM)から起動しますよね?
いまご利用になっているsqlite3がCD-ROM(DVD-ROM)上に存在すると置き換えは難しいと思います。

Qオブジェクト指向言語について

オブジェクト指向言語における、クラス継承の動作について
ご教授ください。

クラスを継承する場合、extendsなどといったキーワードで継承の動きを
実現させるとおもいますが、継承とは、Aというクラスを丸々包含したBというクラスを作成することをいうのでしょうか?
それとも、Aというクラス内にあるpublicやprotectedメンバのみをBというクラスに引き継ぐことをいうのでしょうか?

書籍にやサイトによっては【継承とは継承もとのprivateおよびprotecetd(に準じた)メンバを派生クラスに引き継がせる】という風に解釈できる文面で記述されているものがあります。

継承とは親クラスを拡張した子クラスを作成する

と解釈できるような文面で記述された文献もあります。


伺いたいのは、クラス丸ごとを継承するのかそれともpublicおよびprotectedに準じたメンバのみを
継承するのかです。

OOPの思想や、ちょっと詳しいからといってこまごましたことを
こたえてくるような方はご遠慮ください。

Aベストアンサー

クラスを丸ごと継承します。
その中で、サブクラスからオーバーライドできるのはpublic、protectedといった
スコープのもの、というだけです。

しかしながら、継承とはコピーと同義ではありません。


人気Q&Aランキング

おすすめ情報