Java泛型基本操作

import java.lang.reflect.Array;
import java.util.*;

interface trytry<T>{
    public void Try();
}
class father<T> {
          father(){
        System.out.println("就是个非静态构造函数");
              System.out.println("father end");
    }


    public  father(T i,T j){
        System.out.println("还是个非静态构造函数,只是通过参数实现了多态,顺便比较大小");
        System.out.println(i.equals(j));
        System.out.println("father father(T i,T j)end");
        }

    {
        System.out.println("构造块 应该比构造函数更早调用");
    }
    static{
        System.out.println("静态区,应该是第一个运行的");
        int FatherData =3;
        System.out.println(FatherData);
        System.out.println("静态区结束");
    }
}

class son1<T,K> extends father<T> {
    son1(){
        System.out.println("子类为泛型扩展类");
        System.out.println("son1 end");
    }

}

class son2<Stirng>  extends father<String> implements trytry<String>  {
    son2(){
        System.out.println("子类为非泛型类");
        System.out.println("son1 end");
    }
   public void Try(){
        System.out.println("试一试");
    }

}
class Wang {
   Wang(){
       System.out.println("Wang 的构造函数运行了");
   }
   public <T> T test(T a){
        System.out.println(a);
        return a;
   }

}
public class test {

    public static void main(String[] args) {
 son2 a = new son2();
 Wang b = new Wang();
 b.test("试一试泛型方法");
    }


}

java的泛型与C++的模板很相似,虽然它们的底层实现不同。

java的泛型包括泛型类,泛型方法,泛型接口。

假如父类为泛型类,子类若也为泛型类,尖括号内的标识符应该相同,也可以扩展在父类的标识符的基础上加入子类的标识符。

若父类为泛型类,子类为具体类,则要在尖括号内写出相对应具体的数据类型。

泛型接口和泛型方法也遵循这个道理。

值得注意的一点,接口所有方法默认都是public,原因在于如果不是public,那么只能在同个包下被实现,可访问权限就降低很多了,那么在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的,而在java中一个类如果没有权限的修饰符,默认是friendly(同一个包内的其它类才可访问),所以在实现类中一定要写public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值