小编Ern*_*usc的帖子

为什么超类的实例可以放入子类数组?

我们假设我们有两个类:

class X { }

class Y extends X { }
Run Code Online (Sandbox Code Playgroud)

在main函数中创建一个数组:

Y[] yArr = new Y[3] // created Y's class objects array

X[] xArr = yArr;

xArr[0]= new X() // VALID. WHY?
Run Code Online (Sandbox Code Playgroud)

怎么会这样??因为xArr引用Y[]对象并且为了我的理解它不能创建X对象.

java inheritance

6
推荐指数
1
解决办法
614
查看次数

泛型有什么区别

好的,我在这个网站上读到了这个问题,并没有回答我的主要观点.

假设我们喜欢这样:

public <T extends Number> void someMethod(List<T> list)
Run Code Online (Sandbox Code Playgroud)

public void someMethod(List<? extends Number> list)
Run Code Online (Sandbox Code Playgroud)

考虑到我不需要任何下限或上限列表.所以拒绝这些东西,它在这种情况下有什么区别?因为?是未知的列表,T是T的列表,但是从这一方面来看,它们是相似的(上述方法).

(Ps我知道它之间的差异,但在这种情况下它看起来非常相似,因为我认为使用什么并不重要.)

java

1
推荐指数
1
解决办法
79
查看次数

将调用哪种方法?

例如,我们有一个类Test,它使用参数重载2个方法(只是称之为ambiguousMethod):1方法有short,另一个有int,但有不同的类型.在这种情况下,请考虑该类型是shortint.然后我从main调用这个方法,如下所示:

double d = new Test.ambiguousMethod(3);
Run Code Online (Sandbox Code Playgroud)

那么将调用哪种方法?使用INT还是SHORT返回类型?

谢谢

这是我的代码:

Method a = new Method();
double d= a.print(3);


class Method {

    public int print(int a)
    {
        return a;

    }

    public short print(short b){
        return b;
    }

}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
86
查看次数

反射抛出异常.为什么?

好的,例如我有这个代码:

class Document {

// blablabla

}
Run Code Online (Sandbox Code Playgroud)

我的主要人物:

Object cl =Class.forName("Document"); // throws ClassNotFoundException: Document
Run Code Online (Sandbox Code Playgroud)

为什么找不到我的班级定义?

java

0
推荐指数
1
解决办法
86
查看次数

标签 统计

java ×4

inheritance ×1