2

我只是想知道我是否遗漏了以下问题。我已经用我的回答提出了这个问题。

什么样的对象可以传入下面的方法?在这个方法中可以在 obj 上调用哪些方法?

public void doThis (Object obj)
{
    // some code
}

我的答案:

可以在上述方法中传递的对象类型是从作为当前类的超类的实际类实例化的对象以及已经在当前类本身中实例化的对象。此外,从其他实际类实例化的对象可以类型转换为当前类或其超类之一,以允许作为方法 doThis() 的参数。

可以在方法内部调用的方法包括当前类中的任何公共、受保护或私有方法以及从超类继承的任何方法。

这是正确的吗?

4

3 回答 3

7

什么样的对象可以传入下面的方法?

的任何子类Object,包括Object它自己。

在这个方法中可以在 obj 上调用哪些方法?

类中定义的任何公共/受保护方法Object(例如toStringnotifywait等)。这不包括在子类中定义的方法,除非您明确地向下转型。

于 2012-09-04T14:59:21.017 回答
1

你夸大了真正简单的答案。您可以传入的参数doThis可以是类型对象Object或其任何子类。这就是一切(原始类型除外)。

在内部doThis,您可以调用大多数方法,而不仅仅是类和超类中的方法。例如,System.out.println()

于 2012-09-04T15:01:10.363 回答
0

你的回答不正确。

的任何子类Object都可以传入此方法。所有对象都是 的子类Object,包括数组。传入后,您可以调用在其上的Object类中定义的任何方法,除非您先对其进行类型转换。

于 2012-09-04T15:00:11.097 回答