泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
1.有泛型的方法的语法格式:
public <无意义占位符 如:T ,E> 返回值类型 方法名字 (参数列表){
}
例:
public static <T> void eat (T t){
System.out.println(t);java
}
2.有泛型的类的语法格式:
class 类名 <无意义的占位符>{
}
例:
class Animal <T>{
public void play (T t){
}
}
3.有泛型的抽象类的语法格式:
abstract class 类名 <无意义占位符>{
}
abstract class Person<T>{
public void eat(T t){
};
4.有泛型的接口:
interface 接口名 <无意义占位符>{
}
例:
interface People <T> {
}
注意:
在有泛型的类中定义泛型方法不用加上<无意义字符>;
例:
abstract class Person<T>{
public void eat(T t){
};
public abstract void run ();
}
在声明对象的时候泛型定义为啥类型,输入时就是啥类型。
package com.qfedu.work;
interface People <T> {
}
class Person<T>{
public void eat(T t){
System.out.println(t);
};
}
public class Demo3 {
public static void main(String[] args) {
Person <String> person = new Person<String>();
person.eat("吃饭");
}
}
可以看到Person 后<>内是String类型在用对象调用方法时可以看到方法内输入的参数类型为String类型。