泛型

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(){
		return "联系方式:" + "\n" +
				"\t|- 联系电话:" + this.telphone + "\n" + 
				"\t|- 联系地址:" + this.address + "\n" + 
				"\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 "基本信息:" + "\n" +
				"\t|- 姓名:" + this.name + "\n" + 
				"\t|- 性别:" + this.sex + "\n" + 
				"\t|- 年龄:" + this.age ;
	}
};
class Person<T extends Info>{
	private T info ;
	public Person(T info){		// 通过构造方法设置信息属性内容
		this.setInfo(info);
	}
	public void setInfo(T info){
		this.info = info ;
	}
	public T getInfo(){
		return this.info ;
	}
	public String toString(){	// 覆写Object类中的toString()方法
		return this.info.toString() ;
	}
};
public class GenericsDemo33{
	public static void main(String args[]){
		Person<Introduction> per = null ;		// 声明Person对象
		per = new Person<Introduction>(new Introduction("李兴华","男",30)) ;
		System.out.println(per) ;
	}
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 宠物商店

    葆宁
  • Java多重继承简单示例

    葆宁
  • 李兴华Java核心技术讲解--类集框架笔记

    3.1、认识类集(理解) 如果现在要想保存多个对象,肯定使用对象数组完成,但是对象数组本身有一个最大的问题在于其数据的长度,所以后来使用了链表完成了动态对象数...

    葆宁
  • 用建造者模式实现链式赋值,代码真清爽

    前段时间写了个项目,一个类的属性那叫一个多啊。刚开始直接写一堆set代码,后来set代码实在是太多了,真心看不下去了,用建造者模式重构了一下,嗯,看起来舒服多了...

    Java识堂
  • 创建型设计模式:Builder Pattern示例介绍

    在此之前,我们了解了工厂和抽象工厂模式。这些模式很有用。然而,有几个案例需要创建一个非常复杂的对象,它需要不同的步骤和操作。在这种情况下,Builder Pat...

    程序你好
  • Springsecurity-oauth2之RemoteTokenServices

        RemoteTokenServices是用于向远程认证服务器验证token,同时获取token对应的用户的信息。

    克虏伯
  • java写数据接口

    天天_哥
  • 关于Spring属性处理器PropertyResolver以及应用运行环境Environment的深度分析,强大的StringValueResolver使用和解析【享学Spring】

    若直接提PropertyResolver或者StringValueResolver可能很小伙伴会觉得非常的陌生,但是我若提Environment和Embedde...

    YourBatman
  • JAVA-内部类实例

    张诺谦
  • Spring框架中的设计模式(一)

    设计模式有助于遵循良好的编程实践。作为最流行的Web框架之一的Spring框架也使用其中的一些。 本文将介绍Spring Framework中使用的设计模式。这...

    程序猿DD

扫码关注云+社区

领取腾讯云代金券