16.7 泛型类


泛型类:

泛型类的定义格式;
class 类名<声明自定义泛型>
{
}

泛型注意事项:
1、在类上自定义泛型的具体数据类型是在使用该类的时候创建对象的时候确定的。
2、如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象的时候没有指定泛型的具体类型,那么就是默认为Object类型。

3、在类上自定义泛型不能作用于静态的方法,如果静态的方法需要使用自定义泛型没那么需要在方式法上自己声明使用。

class text
{
	public  <T>T A(T o)
	{
		return o;
	}
	
	public  <T1>T1 B(T1 o)
	{
		return o;
	}
	
}


public class wu
{  
	
	public static void main(String [] args)
	{
		
		Scanner scanner = new Scanner(System.in);
		 text t= new  text();
		System.out.println(t.A(24)+" "+ t.B("fgre"));
	 
	}
	
}


import java.util.Scanner;


class text<T>
{
	public  T A(T o)
	{
		return o;
	}
	
	public <T> T B(T o)
	{
		return o;
	}
	
}


public class wu
{  
	
	public static void main(String [] args)
	{
		
		Scanner scanner = new Scanner(System.in);
		 text<Integer> t= new  text<Integer>();
	    String tt= t.B("fgre");
		System.out.println(t.A(24)+" "+ tt);
	 
	}
	
}


泛型接口的定义格式:
interface  接口名<声明自定义泛型>
{
}

import java.util.Scanner;

interface fc<T>
{
	T  abc(T  O);
}
class text<T> implements fc<T>
{
	public  T A(T o)
	{
		return o;
	}
	
	@Override
	public T abc(T O) {
		
		return O;
	}

	public <T> T B(T o)
	{
		return o;
	}
	
}


public class wu
{  
	
	public static void main(String [] args)
	{
		
		Scanner scanner = new Scanner(System.in);
		 text<Integer> t= new  text<Integer>();
	    String tt= t.B("fgre");
	   Integer in= t.abc(111);
		System.out.println(t.A(24)+" "+ tt+" "+in);
	 
	}
	
}
	





泛型接口要注意的事项;
1、接口上自定义的泛型的具体数据类型是在实现一个接口的时候指定的。
2、在接口上自定义的泛型如果在实现接口的时候没有指定的具体的数据类型,那么默认为Object类型。



泛型的上下限


泛型中的通配符:?
? super Integer  只能存储Integer或者是Integer的父类。泛型的下限
? extends Number  只能存储Number或者是Number的子类。泛型的上限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值