10.泛型
有参的才有意义
1.泛型方法: 有参无返回值: 代码格式: public static <T> void 方法名 () { } //////////// //package com.aug.homework; public class Demo2 { public static void main(String[] args) { test("随便什么数据类型!!"); test(1); test(21.36); test(true); test('a'); } public static <T> void test (T t) { System.out.println(t); } } // 有参有返回值: 代码格式: public static <T> T 方法名 (T t) { return t; } //////////// //package com.aug.homework; public class Demo2 { public static void main(String[] args) { test("随便什么数据类型!!"); test(1); test(21.36); test(true); test('a'); //有参有返 test1("这是啥"); int aa = test1('a'); System.out.println(aa); System.out.println(test1(12)); } //有参无法 public static <T> void test (T t) { System.out.println(t); } //有参有返 public static <T> T test1 (T t) { return t; } }
1 如果一个类是泛型类 2 3 如果想要和类的数据类型一致,那么里面的方法不用加<T> 4 5 //格式 6 class 类名 <T> { 7 8 } 9 /// 10 package com.aug.homework; 11 //泛型类 12 class Test <T> { 13 void show (T t) { 14 System.out.println(t); 15 } 16 } 17 public class Demo3 { 18 public static void main(String[] args) { 19 Test <String> test = new Test(); 20 test.show("你猜我输出的什么"); 21 //test.show(0); 22 //字符串 23 Test <Character> test1 = new Test<>(); 24 test1.show('a'); 25 } 26 }
语法格式: abstract class 类名 <T> { } int 的包装类 Integer byte 的包装类 Byte short 的包装类 Short long 的包装类 Long float 的包装类 Float double 的包装类 Double char 的包装类 Character boolean 的包装类 Boolean //////////// package com.aug.homework; //抽象类 加继承 abstract class Father <T> { public abstract void show(T t); } //继承类 子类继承时,也需要后面加<T> 父类后面也需要加<T> class Son <T> extends Father <T> { @Override public void show(T t) { System.out.println(t); } } public class Demo4 { public static void main(String[] args) { //子类引用调用子类对象 Son <String> son = new Son<>(); son.show("这是子类泛型!!"); //父类引用指向子类对象 Father <Integer> son1 = new Son<>(); son1.show(121231); } } /
package com.aug.homework; //泛型接口 interface Animal <T> { void eat (T t); void drink (T t); } //普通类继承 后面也要跟<T> 接口也要加<T> class Cat <T> implements Animal <T>{ @Override public void eat(T t) { System.out.println(t); } @Override public void drink(T t) { System.out.println(t); } } public class Demo5 { public static void main(String[] args) { Cat <String> cat = new Cat<>(); cat.eat("使劲吃"); cat.drink("使劲喝"); Cat <Integer> cat1 = new Cat<>(); cat1.eat(250); } }
浙公网安备 33010602011771号