このコードを理解するのは苦労します。 Phone13は、SamSungクラスとHTCクラスの親インターフェイスです。 また、VOはSamSungVOとHTCVOの両方の親クラスです。 ここで、myPhone13というインターフェースのSamSungインスタンスを作成します。次に、SamSungVOインスタンスを作成します。私もVOにキャストし、 myPhone.info(myVO)メソッドに入れます。IOC/JDBC/DAO - このコード例はどのように機能しますか?
myPhone.info(VO myVO)はVOをパラメータとしていますが、私はSamSungクラスでmyPhoneインターフェイスを実装していますが、わかりません。だから、私はVOオブジェクトをそのパラメータとしてSamSungオブジェクトを取得するメソッドに入れているようです。私は不思議に思う。このインスタンスはVOからSamSungVOに自動的にどのように移行できますか?
子インスタンスをパラメータとするメソッドの引数として親オブジェクトを置くことはできないと考えました。
package others;
class VO{}
interface Phone13 <E extends VO>{
public void info(E myVO);
}
class SamSung implements Phone13<SamSungVO>{
@Override
public void info(SamSungVO myVO) {
System.out.println(myVO.name);
}
}
class SamSungVO extends VO{
String name = "SamSung";
}
class HTC implements Phone13<HTCVO>{
@Override
public void info(HTCVO myVO) {
System.out.println(myVO.name);
}
}
class HTCVO extends VO{
String name = "HTC";
}
public class MyIOC02 {
public static void main(String[] args) {
Phone13 myPhone = null;
// When I need to use SamSung
myPhone = new SamSung();
VO myVO = new SamSungVO();
myPhone.info(myVO);
}
}