请教为什么泛型写在引用上才起作用?

图片说明

类型不对,genericDemo2指定的是String类型,11需要加上双引号,即改成“11”。

看你param的类型了,要相同的类型

编译器就是这样取识别的。内存地址首先指向引用,再指向实例

上面的语句可以转换成这样的GenericDemo<String> demo = new GenericDemo<String>(); GenericDemo<Object> demo = GenericDemo<String> demo ;这是父类泛型的引用指向子类泛型对象,在知识层面上,父类的引用指向子类对象时,父类的引用操作的东西是父类创建的对象本身具有的。而父类的引用实际指向的是 GenericDemo<Object> demo = new GenericDemo<Object> ();   所以用父类对象调用的函数的参数的类型是Object,而不是子类的函数(参数的类型是String)