最近JAVAにも手を出し始めた者です。
importとextends(imprements)は全く同じとまで言いませんが似たようなものだと思ってました。
自分の理解用に検証してみましたがそれは違うというところがありましたら指摘お願いします。
<疑問その1>
import指定すればクラスのメンバ使えるならextendsやimprementsしなくていいじゃん?
<検証その1>
メンバがprotectedとprivateだったらエラーになった。
importだけではpublicしか使えずメンバを隠蔽できない。
なので隠蔽するにはextendsやimprementsをしてメンバには外部からアクセスするしかない。
importの使いどころとしてはCfgSet.javaみたいな感じで
設定値などを羅列してるだけで隠蔽とか関係なしにその初期値を使いたいだけならimportすればいいと思う。
<疑問その2>
importしなくてもextendsすればメンバ使えるからimport指定しなくてもいいじゃん?
<検証その2>
無意識に親クラス作ってて気付かなかったが、
その親クラスが同じパッケージに属してるなら
自動的に認識してくれるので明示的にimportする必要はない。
が、明示的にimportしておいた方が良いだろう。
なぜしておいた方が良いかは知らん。
Importしてないと
Extendsの時も
インスタンス生成時も変数代入時の型にも省略せずに型宣言しないといけないので非常に手間。
というかクラス作った時に勝手に書かれてる。
<疑問その3>
extendsしなくてimportだけすればいいじゃん?
<検証その3>
検証1の通り、隠蔽できん。
<まとめ>
別パッケージのクラスをextendsするならimportもしとく。
しないなら正式パッケージ名称を入力する。

回答5件
あなたの回答
tips
プレビュー