泛型应用

需求:表示用户的基本信息
分析
1、一个人可以定义一个信息属性,而一个人又有多种信息。

2、信息属性的类型通过泛型声明,设计相应的信息类。
3、需要一个信息类就可以设计一个信息的标识接口
在这里插入图片描述
1、定义标识接口
标识接口:接口中无任何方法。

interface Info{
	//标识接口
}

2、定义表示信息的类——姓名、年龄

class Introduction implements Info{
	private String name;
	private int age;
	
	public Introduction(String name,int age) {
		this.setAge(age);
		this.setName(name);
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Introduction [name=" + name + ", age=" + age + "]";
	}
}

3、定义表示信息的类——电话、地址

class Contact implements Info{
	
	private String address;
	private String tel;
	
	public Contact(String address, String tel) {
		super();	//平常隐藏了
		this.address = address;
		this.tel = tel;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	@Override
	public String toString() {
		return "联系方式:"+"\n"+
				"\t地址:" + address + "\n"+
				"\t电话号码:" + tel;
	}
}

4、泛型确定属性类型

class Person<T extends Info>{	//必须是Info类的子类
	
	private T Info;

	public Person(T info) {
		super();
		Info = info;
	}

	public T getInfo() {
		return Info;
	}

	public void setInfo(T info) {
		Info = info;
	}

	@Override
	public String toString() {
		return "Person [Info=" + Info + "]";
	}
	
}

5、将接口子类的类型设置为泛型类型

public class GenericsDemo07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person<Contact> per=new Person<>(new Contact("成都", "168"));
		System.out.println(per.toString());
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值