
interface HINA {
void write(String str, int age);
}
class super_class {
String name;
int age;
public void write(String str, int age){
System.out.println(str + "\t" + age);
}
super_class(String name, int age) {
this.name = name;
this.age = age;
}
}
class sub_class extends super_class implements HINA {
public void write(String str , int age) {
System.out.println(str + "\t" + age);
}
sub_class(String str , int age) {
super(str , age);
}
}
public class test3 {
public static void main(String[] args) {
super_class naru = new super_class("成瀬川なる", 17);
super_class shinobu = new sub_class("前原しのぶ", 13);
sub_class motoko = new sub_class("青山素子", 15);
if (naru instanceof HINA) naru.write(naru.name, naru.age);
if (shinobu instanceof HINA) shinobu.write(shinobu.name, shinobu.age);
if (motoko instanceof HINA) motoko.write(motoko.name, motoko.age);
}
}
これのsuper_classをOyaに、sub_classをKoにするとコンパイルエラーになります。
何故なんでしょう。
分かる方がいましたら、教えて下さい。
どうぞ宜しくお願い致します。
それと見づらくてどうもすいません。
No.6ベストアンサー
- 回答日時:
適当なこと言ってしまいました。
失礼。> Exception in thread "main" java.lang.InstantiationError: Oya
APIを見ると「アプリケーションが Java の new 構文を使って abstract クラスやインタフェースのインスタンスを生成しようとしたときにスローされます。」と書いてあります。
Oyaクラスにabstract修飾詞が付いているか、
またはインタフェースとして定義されているのではないでしょうか?
(writeの定義で引っかかるはずなのでインタフェースはないと思いますが。。。)
参考URL:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
再度のレスを頂き、ありがとうございます。
今Eclipseを使用してやっているのですが、以前に抽象クラスでOyaというものを作りました。
そこからOyaというクラス名を思いついたのですが、それがいけなかったみたいですね。
Oya1にしたらコンパイルが通りました。
こういうのは初めての体験でして、でも、気付いて当たり前の事ですし、これからは一層気をつけます。
No.4
- 回答日時:
No.4さんのおっしゃる様に入力ミスでしょう。
Eclipseを使ってるなら
super_classの文字を選択した状態にする
⇒右クリック⇒「リファクタリング」を選択
⇒「名前変更」⇒「新しい名前」に"Oya"を入力して「終了」
を使うと便利ですよ。
レスを頂き、ありがとうございます。
自分はEclipseの置換を使って、
super_classをOyaに
sub_classをKoに
全部変換しました。
コンパイルエラーの内容から混在はしてないようです。
でも、不思議ですね。
何故通らないのでしょう。
No.3
- 回答日時:
コンパイルエラーの内容くらい貼りなさいよ。
私エスパーじゃないから。
とりあえず推測かな。
ファイル名が悪いとか
そんな理由?
レスを頂き、ありがとうございます。
コンパイルエラーですが、
Exception in thread "main" java.lang.InstantiationError: Oya
at test3.main(test3.java:43)
ってでますね。
それで43ステップ目は
Oya naru = new Oya("成瀬川なる", 17);
の部分です。
これで何か分かりますか。
もう1度宜しくお願い致します。
No.2
- 回答日時:
別に、コンパイルエラーになんてならないが。
どこか、置換忘れの箇所とかがあるんでないかね。
interface HINA {
void write(String str, int age);
}
class Oya {
String name;
int age;
public void write(String str, int age){
System.out.println(str + "\t" + age);
}
Oya(String name, int age) {
this.name = name;
this.age = age;
}
}
class Ko extends Oya implements HINA {
public void write(String str , int age) {
System.out.println(str + "\t" + age);
}
Ko(String str , int age) {
super(str , age);
}
}
public class test3{
public static void main(String[] args) {
Oya naru = new Oya("成瀬川なる", 17);
Oya shinobu = new Ko("前原しのぶ", 13);
Ko motoko = new Ko("青山素子", 15);
if (naru instanceof HINA) naru.write(naru.name, naru.age);
if (shinobu instanceof HINA) shinobu.write(shinobu.name, shinobu.age);
if (motoko instanceof HINA) motoko.write(motoko.name, motoko.age);
}
}
レスを頂き、ありがとうございます。
logger_manさんの書かれたとおりのソースだと思いますが、一度このソースでコンパイルしてみますね。
……………
やはりOyaがどうとかでコンパイルは通りませんでした。
logger_manさんがこれでコンパイルが通ったなら、自分の中のEclipseに問題があるわけですね。
全く何故通らないのでしょうか。
No.1
- 回答日時:
その実際に変更したソースを提示してください
直し忘れがあるんだと思います
class super_class { <=こことか
String name;
int age;
public void write(String str, int age){
System.out.println(str + "\t" + age);
}
super_class(String name, int age) { <=こことか
this.name = name;
this.age = age;
}
}
レスを頂き、ありがとうございます。
以下が変更したソースです。
interface HINA {
void write(String str, int age);
}
class Oya {
String name;
int age;
public void write(String str, int age){
System.out.println(str + "\t" + age);
}
Oya(String name, int age) {
this.name = name;
this.age = age;
}
}
class Ko extends Oya implements HINA {
public void write(String str , int age) {
System.out.println(str + "\t" + age);
}
Ko(String str , int age) {
super(str , age);
}
}
public class test3 {
public static void main(String[] args) {
Oya naru = new Oya("成瀬川なる", 17);
Oya shinobu = new Ko("前原しのぶ", 13);
Ko motoko = new Ko("青山素子", 15);
if (naru instanceof HINA) naru.write(naru.name, naru.age);
if (shinobu instanceof HINA) shinobu.write(shinobu.name, shinobu.age);
if (motoko instanceof HINA) motoko.write(motoko.name, motoko.age);
}
}
これだとコンパイルが通らないんですよ、本当に。
何故だけ物凄く知りたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
ゲーム開発の入門書を探しています
-
Eclipse 動的プロジェクトで404...
-
jdk17.06のインストーラーが起...
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
googleスプレッドシートのGASに...
-
プログラミングの問題です。大...
-
JaneStyleのスレッドが見れなく...
-
Eclipse 動的プロジェクトで404...
-
次のhtml・cssでspan内の文字を...
-
「main メソッドを持つクラスが...
-
ゲーム開発の入門書を探しています
-
正規表現について質問です。 カ...
-
マイクラでPythonのプログラミ...
-
JAの支部?地域の農協のカード...
-
配列にnullを代入すると、null...
-
jdk17.06のインストーラーが起...
-
下記問題の答えが"D"になる意味...
-
結果的につかあなかったけど
-
jdbcでinsert,delete,createをe...
-
googleスプレッドシートのスク...
-
eclipse実行ができない
-
eclipseで作ったプログラムを他...
おすすめ情報