//泛型
//泛型类 泛型接口 泛型方法 泛型的属性
//泛型的属性 优点:属性的数据类型由调用方来决定属性的数据类型
//Interger 是int的封装类
//character 是cha的封装类
//必定只能是 类 而不是基础数据类型的关键字
//泛型优势:方便扩张
泛型的属性:
// Person<String, Integer, Character>p=new Person<>();
// p.setPname("zs");
// p.setPage(18);
// p.setPsex('女');
// System.out.println(p.getPname());
//泛型的方法:
// PersonMethod<String> pm=new PersonMethod<>();
// String s=pm.getValue("zs");
// System.out.println(s);
//泛型接口:
package com.temp;
import java.util.List;
/**
* 泛型的结果 实现 可以在实现类中定义号,也可以在调用的时候定义
* 接口实现接口 实现类实现类
* 基础接口 自定义接口
* @author 公子
*
* @param <E>
*/
public interface IBaseFace<E> {
/**
* 增加的公共方法
* @param e
* @return
*/
public int addObject(E e);
/**
* 编辑
* @param e
* @return
*/
public int editObject(E e);
/**
* 删除
* @param e
* @return
*/
public int removeObject(E e);
/**
* 查询单个
* @param e
* @return
*/
public E queryObject(E e);
/**
* 查询所有
* @return
*/
public List<E> getAll();
package com.temp;
/**
* 可以在当前的接口中确定它的数据类型
* @author 公子
*
*/
public interface IPersonFace extends IBaseFace<Person<String, Integer, Character>> {
public boolean queryUserName(String uname);
package com.temp;
import java.util.List;
public class PersonImpl implements IPersonFace {
@Override
public int addObject(Person<String, Integer, Character> e) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int editObject(Person<String, Integer, Character> e) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int removeObject(Person<String, Integer, Character> e) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Person<String, Integer, Character> queryObject(Person<String, Integer, Character> e) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Person<String, Integer, Character>> getAll() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean queryUserName(String uname) {
// TODO Auto-generated method stub
return false;
}
}
泛型的方便是不言而喻的,有调用方的自定义数据类型就给予了很大的扩展空间,熟练使用泛型能减少很多的代码。
}
}