📜  java.lang.Object的灵活性

📅  最后修改于: 2020-03-20 14:04:38             🧑  作者: Mango

我们都喜欢Python的机制,Python让我们不必理会变量的数据类型。
有趣的是,我们在Java中也有一个类,这非常相似!
是的,你猜对了!这是java.lang.Object
例如,

// Java展示java.lang.Object的灵活性
public class GFG
{
    public static void main(String arr[])
    {
        Object y;
        y = 'A';
        System.out.println(y.getClass().getName());
        y = 1;
        System.out.println(y.getClass().getName());
        y = "Hi";
        System.out.println(y.getClass().getName());
        y = 1.222;
        System.out.println(y.getClass().getName());
        y = false;
        System.out.println(y.getClass().getName());
    }
}

输出:

java.lang.Character
java.lang.Integer
java.lang.String
java.lang.Double
java.lang.Boolean

这种行为可以归因于java.lang.Object是所有其他类的超类。因此,类型为Object的引用变量实际上可以用于引用任何类的对象。因此,我们也可以在上面的代码中分配y = new InputStreamReader(System.in)!