package fanxing.demo; import java.nio.charset.MalformedInputException; import java.util.MissingFormatArgumentException; /* * 需求: * 人 person - 信息类型 - (1、基本类型,2、联系方式,3、其他) * 思路: * 做一个信息的标识类,只要传递的是此接口的子类就可以设置为泛型类型 * */ //定义一个表示接口——信息 interface Info{ //无方法 } //定义一个联系方式的类,此类实现info 接口 class Contact implements Info{ //三个属性 电话,地址,邮编 private String number; private String address; private String zipcode; //构造方法为属性赋值 public Contact(String number,String address,String zipcode){ this.number = number; this.address = address; this.zipcode = zipcode; } // getter setter 方法 public void setnumber(String number){ this.number = number; } public String getnumber(){ return this.number; } public void seaddress(String address){ this.address = address; } public String geaddress(){ return this.address; } public void setzipcode(String zipcode){ this.zipcode = zipcode; } public String getzipcode(){ return this.zipcode; } //重写object类中的toString 方法,返回对象信息 public String toString(){ return "联系电话:"+this.number+"\n"+"联系地址:"+this.address+"\n"+"联系邮编:"+this.zipcode+"\n"; } } //写一个类 个人的基本信息,实现info 接口 class Introduction implements Info{ //三个属性 : 姓名,性别,年龄 private String name; private String sex; private String age; //构造方法为属性赋值 public Introduction(String name, String sex, String age) { super(); this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "姓名:"+this.name+"\n"+"联系性别:"+this.sex+"\n"+"联系年龄:"+this.age+"\n"; } } //定义一个person类,person类中info 属性的类型使用泛型 class Person<T extends Info>{ private T info; public Person(T info) { super(); this.info = info; } public T getInfo() { return info; } public void setInfo(T info) { this.info = info; } //重写 toString 方法,返回info 属性中的toString 方法的内容 @Override public String toString() { return this.info.toString(); } } public class FanXingDemo6 { public static void main(String[] args) { //将contact类设置为泛型类型 //Contact ct = new Contact("15507546429","lixinfih","789666"); //Person <Contact> p = new Person <Contact>(ct); //System.out.println(ct); //将instrution类设置为泛型类型 Introduction id = new Introduction("wangyuanfang","女","24"); Person <Introduction> p = new Person <Introduction>(id); System.out.println(p); } }