我只是想知道我是否遗漏了以下问题的任何内容。我在回答后提出了问题。
可以将哪种对象传递给以下方法?可以在此方法中的obj上调用哪些方法?
public void doThis (Object obj)
{
// some code
}
我的回答:
可以在上述方法中传递的对象类型是从实际类实例化的对象,这些类是当前类的超类,也是在当前类本身中实例化的对象。此外,已经从其他实际类实例化的对象可以被类型转换为当前类或其中一个超类,以允许作为方法doThis()的参数。
可以在方法中调用的方法包括当前类中的任何public,protected或private方法以及来自超类的任何继承方法。
这是对的吗?
答案 0 :(得分:7)
可以将哪种对象传递给以下方法?
Object
的任何子类,包括Object
本身。
可以在此方法中的obj上调用哪些方法?
Object
类中定义的任何公共/受保护方法(例如toString
,notify
,wait
等。这不包括子类中定义的方法,除非您明确地向下转换。
答案 1 :(得分:1)
你正在描述真正简单的答案。您可以传递给doThis
的参数可以是Object
类型的对象或其任何子类。这就是一切(原始类型除外)。
在doThis
内,您可以调用大多数方法,而不仅仅是类和超类中的方法。例如,System.out.println()
。
答案 2 :(得分:0)
您的回答不正确。
Object
的任何子类都可以传递给此方法。所有对象都是Object
的子类,包括数组。传入后,您可以调用Object
类中定义的任何方法,除非您首先对其进行类型转换。