Java汎用
12035 ワード
ここでは一般型の概念と基礎知識を話さず、単純に私の理について一般型の中の
一.
次のコードはパラメータを簡単に使用できます.注釈は正しい解釈です.
実際にArrayListを継承する目的はaddとgetメソッドを使用してテストすることであり、実際にはaddとgetのようなメソッドを自分で実現することもできます.
ArrayListのaddメソッドとgetメソッドの実装は以下の通りである.
下には上と少し似たようなコードがあります.次のようになります.
一.
次のコードはパラメータを簡単に使用できます.注釈は正しい解釈です.
package xayd.hjj;
import java.util.ArrayList;
import java.util.List;
class A{}
class B{}
class C{}
class D extends C{}
public class Test extends ArrayList{
public static void main(String[] args) {
Test testC = new Test();
// testC = new Test(); //
//testC = new Test(); //
// C ,
testC.add(new C());
//testC.add(new B()); // , C C B
testC.add(new D()); // , ,
C testC1 = testC.get(0);
C testC2 = testC.get(1); // ,
// D testC3 = testC.get(1); //
D testC4 = (D) testC.get(1); // , ,
System.out.println(testC1); //xayd.hjj.C@2a139a55
System.out.println(testC2); //xayd.hjj.D@15db9742
System.out.println(testC4); //xayd.hjj.D@15db9742
}
}
実際にArrayListを継承する目的はaddとgetメソッドを使用してテストすることであり、実際にはaddとgetのようなメソッドを自分で実現することもできます.
ArrayListのaddメソッドとgetメソッドの実装は以下の通りである.
private transient Object[] elementData;
private int size;
public boolean add(E e) {
ensureCapacityInternal(size + 1);
elementData[size++] = e;
return true;
}
public E get(int index) {
RangeCheck(index);
return (E) elementData[index];
}
下には上と少し似たようなコードがあります.次のようになります.
package xayd.hjj1;
import java.util.ArrayList;
class A{}
class B{}
class C{}
class D extends C{}
public class Test extends ArrayList{ // ArrayList, ArrayList