范型

集合中的范型

将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性

简单的来说使用范型,表示集合只能用什么类型的集合;不使用范型的集合,可以装任何东西类型进去(并有黄色警告)

package com.cdz.fanxing;
import java.util.ArrayList;
public class FanXing {
	public static void main(String[] args) {
		ArrayList<String> list=new ArrayList<String>();	//只能为String类型的参数	
		//list.add(1);//参数不行
		list.add("abc");
		System.out.println(list);
		
		ArrayList lis=new ArrayList();	//不使用范型,开口较大,所以可以存任何类型的
		lis.add(1);//参数不行
		lis.add("abc");
		System.out.println(lis);
				
	}
}

下面两个典型泛型创建了一个Fan类

典型泛型集合ArrayList<E>

package com.cdz.fanxing;
import java.util.ArrayList;
public class FanXing {
	public static void main(String[] args) {		
		Fan f=new Fan();		
		ArrayList<Fan> list1=new ArrayList<Fan>();//只能添加Fan类型,也证明了集合的作用:存储对象
		list1.add(f);
		System.out.println(list1);
				
	}
}

 

典型泛型集合HashMap<K,V>

package com.cdz.fanxing;
import java.util.HashMap;
public class FanXing {
	public static void main(String[] args) {	
		HashMap<String,Fan> list2=new HashMap<String,Fan>();
		list2.put("Name", f);
		System.out.println(list2);
		
	}
}

泛型接口

泛型接口就是拥有一个或多个类型参数的接口

package com.cdz.fanxing;

public interface FanJeiKou<T> {
//接口成员
//1.常量
//2.抽象方法,这里的抽象方法abstract,可以省略
	public T prin(T a);
}

而范型接口中的类型交给实现类去实现

package com.cdz.fanxing;

public  class FanJeiKouImp implements FanJeiKou<String> {
	public String prin(String a){//重写了方法
		return a;
	}
	
}

 

泛型类

泛型类就是具有一个或者多个类型参数的类

例:

public class Student<T> {
    public T print(T x){
           //方法体
     }
}

泛型类的继承

面向对象的特性同样适用于泛型类,所以泛型类也可以被继承

继承了泛型类的子类,必须也是泛型类

语法格式:

class 子类<T> extends 父类<T>  { }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值