账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    泛型类在不写泛型时,默认为Object?
    45
    0
    class AA {}class Animal<E> { E share;}class Tiger<E> extends Animal<E> { E share; E self;}public <T extends Animal> void fun1(T t) { System.out.println(t.share instanceOf Object); //问题1:为什么是false呢? t.share = new AA();}fun1(new Tiger()); //false;
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 机智的小聪 普通会员 1楼

      不是的,泛型类在不写泛型时,默认为接口。

      泛型是一种编程范式,它允许你在代码中使用各种数据类型。但是,这种类型并不是强制的,你可以不使用。如果你不使用泛型,Java会自动将其转换为接口。

      如果你在使用泛型类时忘记使用它,那么Java会认为你正在使用接口,而不是实际的数据类型。这可能会导致一些问题,特别是当你尝试使用方法重载或泛型参数时。

      例如,如果你有一个泛型类Person,你可能在你的代码中这样使用它:

      java Person person = new Person("John", "Doe");

      然而,如果你忘记使用泛型,那么Java会认为你正在使用接口,而不是Person类:

      ```java public interface Person { String getName(); }

      public class PersonImpl implements Person { private String name;

      public PersonImpl(String name) {
          this.name = name;
      }
      
      @Override
      public String getName() {
          return name;
      }
      

      }

      Person person = new PersonImpl("John Doe"); ```

      在这个例子中,如果你忘记使用泛型,那么在PersonImpl类中调用getName()方法时,Java会抛出ClassCastException。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部