Java泛型-泛型应用实例

 

/*
        一个人的信息分为:基本信息,和联系方式;
        实现一个类既能操作人的基本信息,又能操作联系方式;
*/

package com.mldn;

 

interface Info // 表示人的各种信息

{

// 空实现的接口 称为 标识接口;

}

 

class Whois implements Info // 人的基本信息

{

private String name;

private int age;

 

public Whois()

{

super(); // 默认

}

 

public Whois(String name, int age)

{

super(); // 明确调用Object的默认构造

this.name = name;

this.age = age;

}

 

public String getName()

{

return this.name;

}

 

public void setName(String name)

{

this.name = name;

}

 

public int getAge()

{

return this.age;

}

 

public void setAge(int age)

{

this.age = age;

}

 

public String toString() // 覆写父类的方法

{

return “姓名:” + this.name + ” 年龄:” + this.age;

}

}

 

class Contact implements Info // 表示联系方式

{

private String address;

private String zipCode;

 

public Contact()

{

super();

}

 

public Contact(String address, String zipCode)

{

this.address = address;

this.zipCode = zipCode;

}

 

public String getAddress()

{

return this.address;

}

 

public void setAddress(String address)

{

this.address = address;

}

 

public String getZipCode()

{

return this.zipCode;

}

 

public void setZipCode(String zipCode)

{

this.zipCode = zipCode;

}

 

public String toString() // 覆写父类方法

{

return “地址:” + this.address + ” 区号:” + this.zipCode;

}

}

 

class Person // 泛型上限为接口Info ,T只能是Info子类

{

private T info;

 

public Person(T info)

{

this.info = info;

}

 

public T getInfo()

{

return this.info;

}

 

public void setInfo(T info)

{

this.info = info;

}

}

 

public class GenPersonInfo

{

public static void main(String[] args)

{

String name = “张三”;

int age = 30;

 

Person perWhois = new Person(new Whois()); // 一个空的实例 T–>Whois

perWhois.setInfo(new Whois(name, age)); // 给实例赋值

System.out.println(perWhois.getInfo());

 

String address = “北京”, zipCode = “10000”;

 

Person perContact = new Person(new Contact()); // T–>Contact

perContact.setInfo(new Contact(address, zipCode));

System.out.println(perContact.getInfo());

}

}

/*

administrator@xu-desktop:~$ javac -d . ./work/GenPersonInfo.java

administrator@xu-desktop:~$ java com.mldn.GenPersonInfo

姓名:张三 年龄:30

地址:北京 区号:10000

 

*/

 

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《Java泛型-泛型应用实例
本文地址:http://www.xiupu.net/archives-64.html
关注公众号:嗅谱网

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!