質問1:ジェネリックAppleクラスを開発するには、テストクラスでさまざまなジェネリックオブジェクトをインスタンス化するために重み属性weightが必要です。オブジェクトa1のこの属性はString型である必要があり、オブジェクトa2のこの属性はInteger型である必要があります。 a3のこの属性はDoubleタイプです。a1、a2、およびa3の重み属性に値を割り当てます:「500グラム」、500、500.0、アクセサーを呼び出して属性値を取得し、テストクラスに出力します。
public class Apple<T> {
private T weight;
public T getWeight() {
return weight;
}
public void setWeight(T weight) {
this.weight = weight;
}
public Apple(T weight) {
this.weight = weight;
}
public Apple() {
}
@Override
public String toString() {
return "Apple{" +
"weight=" + weight +
'}';
}
}
//测试类
public class AppleDemo {
public static void main(String[] args) {
Apple<String> a1= new Apple<>("500克");
Apple<Integer> a2 = new Apple<>(500);
Apple<Double> a3 = new Apple<>(500.0);
System.out.println("a1的重量:"+a1.getWeight());
System.out.println("a2的重量:"+a2.getWeight());
System.out.println("a3的重量:"+a3.getWeight());
}
}
2番目の質問:eatメソッドを持つ汎用インターフェースを定義します。Personクラスを使用してこのインターフェイスを実装します。着信ジェネリック引数はString型であり、実装されたメソッドのコンテンツは自分で定義され、最後にeatメソッドがmainで呼び出されます。
public interface Demo<T>{
public T eat(T t);
}
class person implements Demo<String>{
@Override
public String eat(String s) {
return s;
}
}
public class Demo01 {
public static void main(String[] args) {
Demo<String> demo = new person();
String str = demo.eat("吃饭");
System.out.println(str);
}
}