java 不同子类_java – 在什么方面子类型与使用中的子类不同?

当通过扩展或实现链接类时,建立子类型.亚型也用于泛型.

如何区分子类型和子类?

解决方法:

在Java中,子类化是一种子类型.

Java允许子类型化的方式有很多种:

>当A类延伸B时,A是B的子类型,因为B b = new A(…);没关系.

>当接口A扩展B时,A是B的子类型,因为B b = new A(){…}是可以的.

>当A类扩展B时,A []是B []的子类型,因为B [] b = new A [0]是正常的.

>当A类实现B时,A是B的子类型,因为B b = new A(…)是可以的.

听起来你想要一种方法来区分其他人.以下应该这样做.

static boolean isSubclass(Class> a, Class> b) {

return !b.isArray() && !b.isInterface() && b.isAssignableFrom(a);

}

但是由于类型擦除,它不会处理泛型类的子类型.类实例在运行时不携带类型参数,因此无法区分新ArrayList< String>()的运行时类型与新的ArrayList< Integer>().

标签:java,subclass,subtype

来源: https://codeday.me/bug/20190930/1835173.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值