/*泛型操作范例:
加深对泛型的理解,掌握标识接口的定义,主要采用的知识:关联 泛型 接口用户在设计类的时候往往使用类的关联关系,例如:一个人中可以定义一个信息的属性
但是一个人可能有各种各种的属性
如:联系方式,基本信息等,所以此类型的属性就可以通过泛型进行声明,之后只要设计相应的信息即可
*/
interface Info{ //只有此接口的子类才能表示人的信息,标识接口
}
class Contact implements Info{ //表示联系方式
private String address; //地址
private String telphone; //联系电话
private String zipcode; //邮政编码
public Contact(String address,String telphone,String zipcode){ //构造方法
this.setAddress(address);
this.setTelphone(telphone);
this.setZipcode(zipcode);
}
public void setAddress(String address){ //设置地址
this.address=address;
}
public void setTelphone(String telphone){ //设置联系电话
this.telphone=telphone;
}
public void setZipcode(String zipcode){ //设置邮政编码
this.zipcode=zipcode;
}
public String getAddress(){ //取得地址
return this.address;
}
public String getTelphone(){ //取得电话
return this.telphone;
}
public String getZipcode(){ //取得邮政编码
return this.zipcode;
}
public String toString(){ //覆写Object类中的toString()方法
return "联系电话:"+this.telphone+"\t联系地址:"+this.address+"\t邮政编码:"+this.zipcode;
}
};
class Introduction implements Info{
private String name; //定义姓名属性
private String sex; //定义性别属性
private int age; //定义年龄属性
public Introduction(String name,String sex,int age){ //构造方法
this.setName(name);
this.setSex(sex);
this.setAge(age);
}
public void setName(String name){ //设置姓名
this.name=name;
}
public void setSex(String sex){ //设置性别
this.sex=sex;
}
public void setAge(int age){ //设置年龄
this.age=age;
}
public String getName(){ //取得姓名
return this.name;
}
public String getSex(){ //取得性别
return this.sex;
}
public int getAge(){ //取得年龄
return this.age;
}
public String toString(){
return "姓名:"+this.name+"\t性别:"+this.sex+"\t年龄:"+this.age;
}
};
class Person<T extends Info>{ //设置上限
private T info;
public Person(T info){ //通过构造方法设置属性内容
this.setInfo(info);
}
public void setInfo(T info){ //设置info
this.info=info;
}
public T getInfo(){ //取得Info
return this.info;
}
public String toString(){
return this.info.toString();
}
};
public class GenericCaseDemo1{
public static void main(String args[]){
//先将联系方式作为基本信息
Person<Contact> per=null; //声明Person对象
per=new Person<Contact>(new Contact("合肥市","15105659115","238000"));
System.out.println(per);
}
};