有时我看到的方法有public method(ObjectName variable)
这是否意味着此方法只接受ClassName
个对象?例如来自另一个班级?
这可能是一个简单的问题,但我习惯只看到int's
,String
等作为参数。我猜有些方法可以接受其他类的实例吗?编译器如何知道参数中的类是否有效?它是从进口中知道的吗?
答案 0 :(得分:0)
基本上,对所有问题都是肯定的。有些方法接受类的实例,包括其他类或此类。编译器通过导入和包中的其他类来了解。如果您有一个更具体的问题,请提出一些代码。
答案 1 :(得分:0)
正式规则可在http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.2
找到基本上,如果方法接受类A
,那么它也可以接受A
的任何子类。 A可以是任何类,BigInteger
InputStream
URL
等。如果某个方法可以接受接口B
,那么它也会接受任何实现B
的类。< / p>