白小白的日志

一个菜鸡的心酸之路....

导航

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;

    }
}

2.泛型类

 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 }

 

2.1泛型抽象类

语法格式:
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);
}
}
/

 

3.泛型接口

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);
     }
}

 

posted on 2022-08-01 20:39  白小白的日志  阅读(28)  评论(0)    收藏  举报