Eclipseで例えば↓のようなInterfaceをimplementsしているクラスの一覧を調べたいといったような時に一覧を出す方法はあるでしょうか?
(クラスだったら、コンストラクタで「呼び出し階層を開く」でいけるとおもうのですが)

public interface Interface{}

A 回答 (1件)

 対象のインターフェイスを選択 → F4 (型階層を開く)


で、実装しているクラスの一覧が表示されるかと。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qインターフェース(US-122MKII)をこちらhttp://kakak

インターフェース(US-122MKII)をこちらhttp://kakaku.com/item/K0000059983/からAmazonに飛んで購入したのですが、インストールの仕方が良く分かりません。


USBをPCに接続したら「US-122MKIIのドライバ ソフトウェアをインストールする必要があります」と出てインストールが開始されるんですが

「US-122MKIIに付属のディスクを挿入してください」となり
「このデバイス用のドライバ ソフトウェアが見付かりませんでした」が出て先に進めないです…


説明書の第3章 インストールの「6」の項目で、使用許諾契約の条項に同意してインストール というのがあるんですが、ここも表示されないです;;


少し前にも色々試したんですが、良くわからないず詰まりましたorz

PCはWindows vistaです。


ちなみに、自分はPC関係の事には詳しくないです´`

Aベストアンサー

> いえ、接続しながらはやってません。

最初に「USBをPCに接続したら…」って書いてあるから、そう判断したんですけど・・・まあそれはいいです。それより何より、

「Your user acoount must have administrator privileges to install drivers.」

これ、ものすごく重要です。Vistaになってからセキュリティ対策がうるさくなったので、OSの最初に作られるユーザー権限が「制限ユーザー」になっているため、こういう文句を言われる機会が激増しました。なので、インストーラを実行する時に、「管理者として実行」って言うのを選んでみてください。CDを入れた時に、Autorun2.exeを実行っていうのが出ると思いますが、それを選ばずにエクスプローラでCDを開いてAutorun2.exeを右クリックすると、出てくるメニューの中に「管理者として実行」があります。これの理屈の解説は次のリンク先を見てください。

http://www.atmarkit.co.jp/fwin2k/win2ktips/899uacpromo/uacpromo.html

また、もしかすると最新版のドライバがTASCAMのサイトに上がっていることもあり得ます。これはユーザー登録した人でないと見えないので、いつ時点のものがあるかも私には確認できませんでした。CDと同じものしかないってオチかも知れませんが、これをダウンロードしてくれば、手順の説明も一緒に入っているでしょうから、参考になると思います。

> いえ、接続しながらはやってません。

最初に「USBをPCに接続したら…」って書いてあるから、そう判断したんですけど・・・まあそれはいいです。それより何より、

「Your user acoount must have administrator privileges to install drivers.」

これ、ものすごく重要です。Vistaになってからセキュリティ対策がうるさくなったので、OSの最初に作られるユーザー権限が「制限ユーザー」になっているため、こういう文句を言われる機会が激増しました。なので、インストーラを実行する時に、「管理者として実行」...続きを読む

Qスーパークラスのコンストラクタの呼び出し

こんにちは。

スーパークラスに引数のあるコンストラクタと引数のないコンストラクタをサブクラスで継承する際の質問です。
具体的に書くと下記になります。

class A {
A () {}
A (int i) {}
}
class B extends A {
}

何がわからないかというと
『スーパークラスのA()は、サブクラスのBでわざわざ明示的にスーパークラスのコンストラクタ呼び出しをしなくても問題ないというのはわかるのですが、なぜスーパークラスのA(int)は、呼び出さなくても良いのかということです。』

もしかしたら基礎中の基礎かもしれませんが、ご教授よろしくお願いいたします。

Aベストアンサー

> なぜスーパークラスのA(int)は、呼び出さなくても良いのか

コンストラクタはメソッドと異なり、継承されないからです。
そのため、必要なければ呼び出す必要がないのです。

QUSBオーディオインターフェース

ノートPCのオーディオ強化策としてUSBオーディオインターフェースの
増設と外付けスピーカーの購入をしようと思います。
USBオーディオインターフェースというものは
デスクトップPCでいうサウンドカード(ボード)と同じと考えていいんですよね。
ということは、USBオーディオインターフェースを介して音を出すようにした場合、PCから出る音全てが外付けスピーカーから出るようになるのでしょうか?常にPCにスピーカーを接続していないと音が出なくなるということでしょうか??
USBオーディオインターフェースとスピーカーをいつも一緒に持ち歩かなくてはいけないということになると結構難儀です。

因みに、スピーカーはcreative T20
http://jp.creative.com/products/product_CreativeStore.asp?category=4&subcategory=789&product=14299&listby=
USBオーディオインターフェースも同じcreativeのX-Fi Surround 5.1
http://jp.creative.com/products/product_CreativeStore.asp?category=1&subcategory=208&product=17751&listby=
を検討していますが、何かお勧めの製品があれば教えてください。
こちらも併せてよろしくお願いします。

ノートPCのオーディオ強化策としてUSBオーディオインターフェースの
増設と外付けスピーカーの購入をしようと思います。
USBオーディオインターフェースというものは
デスクトップPCでいうサウンドカード(ボード)と同じと考えていいんですよね。
ということは、USBオーディオインターフェースを介して音を出すようにした場合、PCから出る音全てが外付けスピーカーから出るようになるのでしょうか?常にPCにスピーカーを接続していないと音が出なくなるということでしょうか??
USBオーディオインターフェ...続きを読む

Aベストアンサー

>オーディオインターフェース+外部接続スピーカーで音を出してる時も
>USB端子をぶっこ抜いたら内蔵スピーカーに切り替わるというように。
無理でしょうか?

私の環境ですが、ONKYO WAVIO USBデジタルオーディオプロセッサー SE-U33GX+ を使用しています。
http://www.amazon.co.jp/%E3%82%AA%E3%83%B3%E3%82%AD%E3%83%A8%E3%83%BC-SE-U33GX-ONKYO-WAVIO-USB%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5%E3%83%BC/dp/B000FHU7GA/ref=sr_1_6?ie=UTF8&s=electronics&qid=1218128479&sr=8-6
コントロールパネル->サウンド、音声、およびオーディオデバイス->サウンドとオーディオデバイス->オーディオタブで、規定のデバイスをUSBオーディオデバイスにしておくと、USBオーディオデバイスに繋いだスピーカーから音が出ます。
USBオーディオデバイスを取り外すとノートPCのスピーカーから音が出ます。音楽プレーヤーなどは起動時に出力先を認識しているようなのでプレーヤーの再起動が必要です。
さらにUSBオーディオデバイスを取り付けると、またUSBオーディオデバイスに接続されたスピーカーから音が出るようになります。同様にプレーヤーの再起動は必要です。

>オーディオインターフェース+外部接続スピーカーで音を出してる時も
>USB端子をぶっこ抜いたら内蔵スピーカーに切り替わるというように。
無理でしょうか?

私の環境ですが、ONKYO WAVIO USBデジタルオーディオプロセッサー SE-U33GX+ を使用しています。
http://www.amazon.co.jp/%E3%82%AA%E3%83%B3%E3%82%AD%E3%83%A8%E3%83%BC-SE-U33GX-ONKYO-WAVIO-USB%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5%E3%83%BC/dp...続きを読む

Qコンストラクタ,interface,abstractの呼び出し順について

現在、java初心者入門などの本で勉強しております
下記についてご教授お願い致します
コンストラクタ、interface、abstractの呼び出し順について質問なのですが、
下記プログラムを実行したところ(同一のパッケージ内に明記)

// インターフェイス
public interface interFaceClassSS {
   public void show();
}

public interface interFaceClassS {
   public void show();
}

// 抽象クラス
public abstract class ClassSSSab {
   // 共通のメソッドを実装
   //個々のメソッド
   abstract void show();
}

// スーパークラス
public class ClassSSS extends ClassSSSab{
   public ClassSSS(){
      System.out.println("ClassSSS");
      show();
   }
   public void show(){
      System.out.println("ClassSSSabの抽象メソッドを実装");
   }
}

public class ClassSS extends ClassSSS implements interFaceClassSS {
   public ClassSS() {
      System.out.println("ClassSS");
      show();
   }
   public void show() {
      System.out.println("interFaceClassSSを実装");
   }
}

// メイン処理
public class ClassS extends ClassSS implements interFaceClassS {
   public ClassS() {
      System.out.println("ClassS");
      show();
   }
   public static void main(String[] args) {
      new ClassSSS();
      System.out.println("");
      new ClassSS();
      System.out.println("");
      new ClassS();
   }
   public void show() {
   System.out.println("interFaceClassSを実装");
   }
}

// 結果
ClassSSS
ClassSSSabの抽象メソッドを実装

ClassSSS
interFaceClassSSを実装
ClassSS
interFaceClassSSを実装

ClassSSS
interFaceClassSを実装
ClassSS
interFaceClassSを実装
ClassS
interFaceClassSを実装

の結果となりました。
当方が望む結果は、

ClassSSS
ClassSSSabの抽象メソッドを実装

ClassSSS
ClassSSSabの抽象メソッドを実装
ClassSS
interFaceClassSSを実装

ClassSSS
ClassSSSabの抽象メソッドを実装
ClassSS
interFaceClassSSを実装
ClassS
interFaceClassSを実装

上記となります。

new ClassSSSの処理は当方が望む結果なのですが、
new ClassSSでは、
newClassSSSの結果に
ClassSS
interFaceClassSS
が追加されると理解していたのですが、結果は、
違っておりました。

どこに誤りがあるのが、数日検討したのですが、分からない状態です。
ご教授の程お願い致します。

現在、java初心者入門などの本で勉強しております
下記についてご教授お願い致します
コンストラクタ、interface、abstractの呼び出し順について質問なのですが、
下記プログラムを実行したところ(同一のパッケージ内に明記)

// インターフェイス
public interface interFaceClassSS {
   public void show();
}

public interface interFaceClassS {
   public void show();
}

// 抽象クラス
public abstract class ClassSSSab {
   // 共通のメソッドを実装
   //個々のメソ...続きを読む

Aベストアンサー

interFaceClassSを実装

スーパークラスのshowをオーバーライド

これで説明付くんじゃないかしら。

Qプラグインパワータイプのマイク(3.5㎜)をインターフェースで使いたいのですが・・・

今回下記のインターフェースを購入しました。元々所持している下記のマイクを使用したいのですが、キャノン端子から3.5㎜の変換プラグを使っても音がでません・・・
やはり、インターフェースとマイクの間に何か機器を繋げれば使用可能でしょうか?


インターフェース http://tascam.jp/product/us-366/

マイク https://www.sanwa.co.jp/product/syohin.asp?code=MM-MC31


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

Aベストアンサー

こんにちは。

 TASCAMのUS-366は、コンデンサマイク(電源を必要とするマイクで、繊細な音やアコースティック楽器やささやき声、声量のない声の録音に向いている。)用にファンタム電源(48ボルト)を供給する機能はありますが、一般的にプラグインパワーのマイクはもっとだいぶ少ない電力(パソコンやICレコーダーなどでの使用を想定していて、5ボルトくらい)で動くので、それで録音できないのだと思います。

 せっかくTASCAMのUS-366を買われたのですから、オーディオ・テクニカの下記のコンデンサ・マイク(AT-2020が初心者向けです。)を買われると、いい音で録音できていいと思います。このとき、マイクスタンド(楽器の録音にも使うなら、また、いろんな録音を将来されるなら、ストレートタイプのスタンドより、いろんな角度に曲げることができるブーム・スタンドをお勧めします。)なども購入するといいと思いますよ。

 https://www.audio-technica.co.jp/mi/list_model.php?categoryId=1100101

 以上です。

こんにちは。

 TASCAMのUS-366は、コンデンサマイク(電源を必要とするマイクで、繊細な音やアコースティック楽器やささやき声、声量のない声の録音に向いている。)用にファンタム電源(48ボルト)を供給する機能はありますが、一般的にプラグインパワーのマイクはもっとだいぶ少ない電力(パソコンやICレコーダーなどでの使用を想定していて、5ボルトくらい)で動くので、それで録音できないのだと思います。

 せっかくTASCAMのUS-366を買われたのですから、オーディオ・テク...続きを読む

Qコンストラクタの呼び出し

コンストラクタは、インスタンスを作成した時に
呼び出されると思うのですが、その後に再度初期化
したくなったなどの場合に外部から呼び出せないの
でしょうか?

なぜかシンボルを呼び出せませんと出てしまいます。
何故なのでしょう??

Aベストアンサー

> その後に再度初期化したくなったなどの場合に外部から呼び出せないのでしょうか?

呼び出せません。(理由はいろいろあります)

複数回初期化したい場合は、初期化用のメソッドを用意します。

class SampleClass {

SampleClass() { //コンストラクタ
init();
}

void init() {
// ここで初期化する
}

}

QMIDI/AUDIOインターフェースの購入検討

現在MIDIコントローラー(キーボード)とPCをUSBケーブルで接続して楽曲製作をしています。
レイテンシを小さくするため、ASIO対応のMIDIインターフェースの購入を検討していますが、どの製品を買えば良いのか判断ができません。
5万以下で、おすすめの製品があれば教えて下さい。
将来的にはオーディオ録音もしたいので、オーディオインターフェース機能が付いたものでも構いません。

※希望としては、キーボードとMIDIインターフェースをUSBケーブルで接続して、
MIDIインターフェースとPCをUSBケーブルで接続するのが理想ですが、
キーボードのMIDI_OUTとMIDIインターフェースのMIDI_INを接続して、
MIDIインターフェースとPCをUSBで接続する場合でも良いです。

Aベストアンサー

勘違いしているようですが、ASIOはオーディオインターフェースのサウンドドライバの仕様です。ASIOはあくまでオーディオの遅延を極力解消するためのものです(そもそもは入力チャンネルの問題だったようですが)。MIDIインターフェースとは関係ありません。ちなみにMIDIデータは、通常USB接続の方がMIDIケーブル接続より高速です。
http://ja.wikipedia.org/wiki/ASIO
現在の構成で発音に遅延が生じているとしたら、それはレイテンシの高いソフト音源を使用しているからでしょう。VSTiなどの低レイテンシのソフト音源やハードMIDI音源を使用すれば解消することであり、MIDIインターフェースの問題ではありません。
なお、VSTiはシーケンサーソフトが対応している必要があるので注意が必要です。
http://www.dtmm.co.jp/special/lama.shtml

ASIOが必要なのはオーディオの録音・再生を行う場合であって、MIDIだけで使用している限りは関係ありません。

オーディオデバイスについては楽器屋で店員に相談して選んだほうがいいと思いますが、いちおうこちらを参考に。
http://www.sofmap.com/product_list/exec/_/gid=PL13040100

勘違いしているようですが、ASIOはオーディオインターフェースのサウンドドライバの仕様です。ASIOはあくまでオーディオの遅延を極力解消するためのものです(そもそもは入力チャンネルの問題だったようですが)。MIDIインターフェースとは関係ありません。ちなみにMIDIデータは、通常USB接続の方がMIDIケーブル接続より高速です。
http://ja.wikipedia.org/wiki/ASIO
現在の構成で発音に遅延が生じているとしたら、それはレイテンシの高いソフト音源を使用しているからでしょう。VSTiなどの低レイテンシのソフ...続きを読む

QInterfaceを実装して、コンストラクタのエラー

もともと
Tempクラスで

public void a()
public String b()

という2つのメソッドと、

public Temp(String s)

という一つのコンストラクタを持っていて、

public interface Tempinterface extends Remote
{
public void a() throws RemoteException;
public String b() throws RemoteException;
}
という中身のインターフェースを作り、

Tempクラスの一行目を

public class Temp extends UnicastRemoteObject implements Tempinterface

に変更しました。
今コンパイルの時点で、
public Temp(String s)
のコンストラクタで
「unreported exception: java.rmi.RemoteException; must be caught or declared to be thrown」
というエラーが出ています。

インターフェースの中に
public Temp(String s) throws RemoteException;
という一行を加えたらメソッドじゃないから駄目、
と言われて、

Tempクラスのコンストラクタの中で
try、catchしてみたらそんなExceptionは出ない、
と言われて困っています。
これはどうすればいいのでしょうか?

もともと
Tempクラスで

public void a()
public String b()

という2つのメソッドと、

public Temp(String s)

という一つのコンストラクタを持っていて、

public interface Tempinterface extends Remote
{
public void a() throws RemoteException;
public String b() throws RemoteException;
}
という中身のインターフェースを作り、

Tempクラスの一行目を

public class Temp extends UnicastRemoteObject implements Tempinterface

に変更しました。
今コンパイルの時点で、
...続きを読む

Aベストアンサー

TempのコンストラクタにRemoteExceptionをスローするようにしたら、コンパイル出来るんじゃないですか
TempクラスのスーパークラスであるUnicastRemoteObjectクラスのコンストラクタが全て、RemoteExceptionをスローしてるんで、その継承したTempのも必要なのでは

Q歌ってみた等の録音とインターフェースについての質問です。

歌ってみた等の録音とインターフェースについての質問です。

最近購入したインターフェースを使っているのですがヘッドホンでの音楽等の再生の際に片耳からしか再生されません。
さらに録音も片耳分しか録音されずそれをインターフェースを経由させずにパソコンのスピーカーで聞いても片耳のみしか再生されません。

どのようにしたら両耳から再生されまた両耳で再生できる音を録音できるようになるでしょうか??
ちなみにボリュームバランスは片方が0になってるみたいなことはありませんでした。
非常に伝わりにくい文章ですが何卒お答えいただけると幸いです。

使用機材~

インターフェース TASCAM ( タスカム ) / US-122MKII http://www.soundhouse.co.jp/shop/ProductDetail.asp?Item=738^US122MKII^^

マイク SHURE ( シュアー ) / SM58 http://www.soundhouse.co.jp/shop/ProductDetail.asp?Item=662^SM58^^

マイクケーブル CLASSIC PRO ( クラシックプロ ) / MIX030 http://www.soundhouse.co.jp/shop/ProductDetail.asp?Item=233MIX015

歌ってみた等の録音とインターフェースについての質問です。

最近購入したインターフェースを使っているのですがヘッドホンでの音楽等の再生の際に片耳からしか再生されません。
さらに録音も片耳分しか録音されずそれをインターフェースを経由させずにパソコンのスピーカーで聞いても片耳のみしか再生されません。

どのようにしたら両耳から再生されまた両耳で再生できる音を録音できるようになるでしょうか??
ちなみにボリュームバランスは片方が0になってるみたいなことはありませんでした。
非常に伝わりに...続きを読む

Aベストアンサー

正直なところ、よく分からないので、あまり参考にはならないかも知れませんが...

>> ヘッドホンでの音楽等の再生の際に片耳からしか再生されません //

これは、US-122Mk2やヘッドフォンの故障でない限り、パソコンのソフト側の問題と思われます。ソフト側の問題については、OSやソフトウェアの具体的な情報が分からないと、何ともいえません。

もっとも、当方はMacユーザなので、Windowsに関しては一般的な知識しかありません。

US-122Mk2やヘッドフォンの故障でないかどうかを確かめるには、別のヘッドフォンを使ってみるのが確実でしょう。あるいは、US-122Mk2のラインアウトに何か機材を繋いで確かめます。ラジカセやミニコンポ、TV、パソコン用ディスプレイの外部入力で構いません。

それらの機材がなければ(あるいは外部入力がなければ)、最悪、「RCA <=> ステレオミニ」の変換コードでも構いません(数100円)。望ましい接続方法ではありませんが、動作確認くらいなら大丈夫です。ラインアウトのボリュームを絞った状態で接続し、少しずつ音量を上げて確かめます。

他に考えられる原因としては、ヘッドフォンのプラグの差し込みが不十分とか、ヘッドフォンのプラグがステレオミニで変換プラグを使っている場合にそのプラグが間違っているとか、でしょうか。

いずれにせよ、そのヘッドフォンがどういうものか、再生ソフトは何か、ヘッドフォンを挿すのに変換プラグなどを使っているならそれはどういうものか、などの情報が分からないと、こちらの点についてはこれ以上のことはいえません。

>> 録音も片耳分しか録音されずそれをインターフェースを経由させずにパソコンのスピーカーで聞いても片耳のみしか再生されません //

録音に使用するソフトにもよりますが、基本的には、これは当然の出来事です。

US-122Mk2の入力端子は、INPUT1がステレオでいう左、INPUT2が右に相当します。したがって、マイクをINPUT1に繋いでいれば、左チャンネルだけに録音されることになります。

しかし、一般的には、ボーカルはモノラルトラックで録音します。その上で、ふつう、ボーカルはセンターに定位させるので、ソフトの側でセンターにPANすれば左右から再生されるようになります。

ダイレクトモニタリング(パソコンに録音されている音ではなく、US-122Mk2のマイク入力の音を直接US-122Mk2の出力端子に回す方法)でセンターに定位させるときは、US-122Mk2の「MONO」スイッチをONにします。

ちなみに、パソコンからの音は「MON MIX」つまみのCOMPUTER側、ダイレクトの音はINPUT側という割り振りなので、このつまみをセンターにしておけば両方の音を同時に聞くことができます。もちろん、片方に回しきれば、そちら側の音だけが聞こえます。

この辺りの話は、マニュアルUS-122Mk2に書かれているので、よく読み直して下さい(ソフトの使い方に関しては、不親切な場合は書かれていないかも知れませんが...)。

正直なところ、よく分からないので、あまり参考にはならないかも知れませんが...

>> ヘッドホンでの音楽等の再生の際に片耳からしか再生されません //

これは、US-122Mk2やヘッドフォンの故障でない限り、パソコンのソフト側の問題と思われます。ソフト側の問題については、OSやソフトウェアの具体的な情報が分からないと、何ともいえません。

もっとも、当方はMacユーザなので、Windowsに関しては一般的な知識しかありません。

US-122Mk2やヘッドフォンの故障でないかどうかを確かめるには、別のヘッドフォン...続きを読む

Qインタフェース、クラスの継承、コンストラクタ意味

Javaを学習している初心者です。

インタフェース、コンストラクタ、クラスの継承について、
必要な理由が、イマイチよく分かりません。

特に設定しなくても、プログラムは動くと思うのですが・・・
(特にインタフェース)

詳しい方、教えて下さい。

Aベストアンサー

単純な例題などでは必要性を感じないでしょうね。実際不要だし…
しかし、プロジェクトが複数で、パッケージが200~300、ソースが
2000以上などと言う規模になると、必要になってきます。

コンストラクタ
早い話がクラスの初期設定です。不要なら空の記述でかまいません。
ただ、面白い使い方があります。コンストラクタの属性をprivate、
あるいは「無し」にします。前者は特定の方法でしかインスタンスを
作れないようにする、後者は同一パッケージ内でのみインスタンスを
作れるようにする場合です。プロジェクトが大きく、これに携わる
プログラマの技量にバラつきがある場合、不要な混乱を避けるという
効果があります。また、マルチスレッドで、クリティカルな制御を
する場合(複数の処理スレッドが同時に実行された時に混乱しない
ようにするための制御)などに使います。

インターフェース
これは分かり難い。事実、技量不足のプログラマに作らせると、
とんでもないバグの原因になったりしますので、使い方も難しい。
例え話:会社の支店を考えましょう。支店には必ず支店長、住所が
あるものとします。しかし、新宿支店には特設会場があり、渋谷支店
には保養所がある。この状態で支店住所を処理するプログラムがある
とすると、支店が新宿なら…、渋谷なら…、○○なら…というように
しなければなりませんね。でも、各支店が支店インターフェースを
持ち、これに支店長と住所があると記載されていれば、プログラムは
「支店の住所」とするだけで良いのです。
同様の使い方をするものに抽象クラスというものがあります。
個人的にはこちらの方が好みです。間違いが少ないし、手続実体を
記述することができます。

継承
機能A、B、Cを持つクラスXがあるとします。仕様が変更になり、
機能Dを追加したとします。直接、Xを修正しても良いのですが、
既存機能A、B、Cが影響を受けていないかどうかを再テストする
必要があります。しかし、Xを継承したクラスYを作り、ここには
機能Dだけを記述します。この場合は機能Dのテストだけで十分と
言えます。(作り方がマズイと継承元の機能に影響することもある)
クラスYはXを継承しているので、機能A、B、Cを持っています。
また、ある共通機能を持つクラスを独立させておくと、これを使う
場合、このクラスをインスタンス化する必要がありますが、この
クラスを継承すると、インスタンス化する必要はなく、自身の
メソッドを呼ぶのと全く同じ感覚で実行することができます。
他にも継承の恩恵は数多くありますが、長くなるので、この辺で
止めます。

と、まぁ文章で語るとこんな具合で、どうしても抽象概念しか分かり
ませんよね。感覚的に「こういうもんだ」と分かるには実経験を
積んで、いろいろな場面に遭遇するしかないでしょうね。

単純な例題などでは必要性を感じないでしょうね。実際不要だし…
しかし、プロジェクトが複数で、パッケージが200~300、ソースが
2000以上などと言う規模になると、必要になってきます。

コンストラクタ
早い話がクラスの初期設定です。不要なら空の記述でかまいません。
ただ、面白い使い方があります。コンストラクタの属性をprivate、
あるいは「無し」にします。前者は特定の方法でしかインスタンスを
作れないようにする、後者は同一パッケージ内でのみインスタンスを
作れるようにする場合です。...続きを読む


人気Q&Aランキング

おすすめ情報