泛型
泛型:广泛的类型。
例如:数组里面存放的数据全部是统一类型的
1.泛型
1.1泛型方法
语法格式:
public <无意义的占位符> 返回值的类型 方法名字 (参数) { }
1.2泛型类
语法格式:
class 类名<无意义的占位> { }
1.3泛型接口
语法格式:
interface 接口名字<无意义的占位>{ }
package com.kz.b_four;
interface A<T> {
//成员方法
public void eat(T t);
}
//如果接口有泛型 去实现这个接口的时候必须带有泛型,如果不带有泛型的话
//子类是无法使用父类的泛型的
//注意事项:父类(接口)中带有泛型,那么实现类中必须带有泛型,保证实现类和接口保持一致的
class TestA<T> implements A<T> {
@Override
public void eat(T t) {
System.out.println(t);
}
}
public class Demo01 {
public static void main(String[] args) {
TestA<String> stringTestA = new TestA<String>();
stringTestA.eat("张三");
TestA<Integer> integerTestA = new TestA<>();
integerTestA.eat(20);
}
}
注意事项:
如果接口有泛型 去实现这个接口的时候必须带有泛型,如果不带有泛型的话
子类是无法使用父类的泛型的
父类(接口)中带有泛型,那么实现类中必须带有泛型,保证实现类和接口保持一致的
1.4泛型抽象类
语法格式:
abstract class 类名<占位符> { }
abstract class B<T> {
abstract void testB(T t);
}
class TestB<T> extends B<T> {
@Override
void testB(T t) {
System.out.println(t);
}
}
public class Demo2 {
public static void main(String[] args) {
TestB<String> stringTestB = new TestB<>();
stringTestB.testB("不要干违法乱纪的事情");
}
}
扩展 权限修饰符