首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java中对象类背后的机制是什么?

java中对象类背后的机制是什么?
EN

Stack Overflow用户
提问于 2011-03-22 20:27:37
回答 3查看 152关注 0票数 1
代码语言:javascript
运行
复制
class A{}
class Z{}
class S{}

public class Demo6 {

    void fun(A a){
        System.out.println("A reference");
    }

    void fun(Z z){
        System.out.println("Z reference");
    }

    void fun(Object o){
        System.out.println("other reference");
    }

    public static void main(String args[]){
        new Demo6().fun(new A());
        new Demo6().fun(new S());
    }   
}

以上代码的输出如下:

参考资料

其他参考资料

我的困惑是,当我们传递'S‘类对象时,"other reference“是如何打印的。阐述“S”类对象如何与" object“类兼容的实际机制。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-22 20:31:48

每个类都有java.lang.Object作为父类-即使您不编写extends Object,编译器也会自动添加它。引用the javadoc

类对象是类层次结构的根。每个类都有作为超类的对象。所有对象,包括数组,都实现这个类的方法。

S显然是存在的,否则它不会编译。然后,编译器选择最具体的方法来调用。S既不匹配Z签名,也不匹配A签名,它匹配Object签名。

票数 2
EN

Stack Overflow用户

发布于 2011-03-22 20:30:17

每个类都是java.lang.Object的子类,即使您没有显式地扩展它。

票数 5
EN

Stack Overflow用户

发布于 2011-03-22 20:31:32

SObject的一种类型,因为Java中的每个类都是Object的子类。当Java搜索重载 fun()的合适方法时,fun(Object object)会匹配参数,因此它会被调用。

试着看看Java中的方法重载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5391191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档