- PR -

継承の方法って?

投稿者投稿内容
POLON
会議室デビュー日: 2001/11/15
投稿数: 13
投稿日時: 2001-11-25 02:41
かなり初歩的な質問で恐縮です。

先ほど自前で作成した(JavaApplicationの)SuperClassを
SubClassに継承(extends)させようとしたのですがCompile
Errorになってしまいました。
Servletで「HttpServlet」などの継承は問題なく出来るのに
自前のClassはなぜ継承できないのでしょうか

ちなみに開発環境は
J2SDK ver1.3.1
Free Editor(MKEditor)
で開発Softは使わずに直接javacでCompileしております。

[ メッセージ編集済み 編集者: POLON 編集日時 2001-11-25 03:04 ]
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-11-25 20:25
コンパイルエラーというのは、具体的にどういったエラーとなるのでしょうか?

単純に考えられるのは、SuperClass にクラスパスが通っていないとか考えられそうですが、エラーのメッセージがかかれていないと何とも言いようがありませんね。
POLON
会議室デビュー日: 2001/11/15
投稿数: 13
投稿日時: 2001-11-26 13:13
TO ふうたさん。
返事が遅くなりまして申し訳ありませんでした。

現象(というか状況)と言うのは
DBControl.classというSubClassからDBConnection.class(SuperClass)を
呼び出そうとしております。

--Image--
[DBConnection]

[DBControl]
で、実際のDBControlのSorceには
----------------------------------
import java.io.*;

public class DBControl extends DBConnection {
public static void main( String[ ] args ) {



}}
----------------------------------
と記述し、コマンドは「javac -deprecation DBControl.java」で
Compileしております。

そしてError内容は
----------------------------------
Path名:3:シンボルを解釈処理できません。
シンボル:クラスDBConnection
位置 :DBControlのクラス
public class DBControl extends DBConnection {
-------------------------------^
と出力されます。
やはり私の書き方が間違いなのでしょうか

[ メッセージ編集済み 編集者: POLON 編集日時 2001-11-26 13:13 ]

[ メッセージ編集済み 編集者: POLON 編集日時 2001-11-26 13:14 ]
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-11-26 13:33
DBConnection.class と DBControl.java は、同じディレクトリに配置しているのでしょうか?
もし、そうであればクラスパスに"."(ピリオド)が含まれているか確認してみてください。

もしくは、DBConnection.java と DBControl.java が同じディレクトリにあるのであれば、
javac -deprecation *.java でもいけそうですが、SuperClassにクラスパスを通すのが
普通でしょう。
POLON
会議室デビュー日: 2001/11/15
投稿数: 13
投稿日時: 2001-11-26 14:23
TO ふうたさん。

早速の回答誠に有難う御座います。

再度回答に対しての質問で恐縮ですが
DBConnection.classとDBControl.classは同Dirに配置しております。

私は現在Win98seで開発しておりますので
>SuperClassにClassPathを通す
というのはAutoexec.batにClassPathを記述するという事でしょうか?

大変お手数を掛けまして申し訳御座いません。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-26 16:34
パッケージにしていなければ、両方の .class のある場所で

javac -cp . *.java

すればいいでしょう。
POLON
会議室デビュー日: 2001/11/15
投稿数: 13
投稿日時: 2001-11-26 17:36
すみません。

いつも使用しているEditor(MKEditor)専用でCompileを
容易にしてくれるbath Fileがありまして、
それを普段利用しているのですが

ちょっと今回このbathでのCompileを止めて直接MS-DOS上から
Compile(「javac -deprecation DBControl.java」)を行って
みたところ、何の問題もなくCompileが行えました

ですので無事にCompileが出来ました。
お騒がせ致しまして大変申し訳御座いませんでした
m(_ _)m

ですが折角お答え頂いた事なのでご迷惑とは思いますが
いま一度質問をさせてください。

[TO しょむさん]
毎回、大変お世話になっております。自力で調べれば
良いのですがあいにく(Internet含む)手元に資料が
見つからない為、お手数とは思いますが質問させてください。
「javac -cp . *.java」とは「javac -cp . DBControl.java」で
良いのでしょうか?

[TO ふうたさん]
この度はお騒がせ致しまして大変申し訳御座いませんでした。
ただ私が未熟なため「SuperClassにクラスパスを通す」がいまいち
解りません。
他の方にもこのスレッドが役に立てばと思いますので
ご迷惑でなければお教え頂けませんでしょうか。

宜しくお願い致します。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-11-26 18:32
コマンドプロンプトから、javac をいちいち起動するのは面倒だと思います。
javac だけでなく、javadoc も同様ですね。

これを機会に、Ant ( Apache Jakarta Project ) を利用してみるのはいかがでしょうか。
Ant は、Java製のMakeツールです。
もちろん、MKEditor依存の製品ではありません。

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