/**
*
*/
package cm.object.define;
/** @author 彦舜
1、Object类是所有类的父类,也就是说任何一个类在定义时如果没有明确地继承一个父类,那它就是Object类的子类。
2、本程序测试了,Object可以接收任意类对象,使用Miss类与String类实现了向上与向下转型操作。所以,设计代码时,如果在不确定参数类型时,
使用Object类应该是最好的选择。
3、通过javaDoc文档可以发现,在Object类中提供了一个无参构造方法,之所以提供这样的无参构造,是因为在子类对象实例化时都会默认调用父类
中的无参构造方法,这样在定义类时即使没有明确定义父类为Object,读者也不会感觉到代码的强制性要求。
4、除此之外,对于任意一个简单的Java类而言,理论上应该覆写,Object类中的3个方法。视具体情况而定。
public String t9String()
public boolean equals(Object obj)
public int hashCode()*/
public class ExampleFseventy {
public ExampleFseventy() {}
public static void main(String[] args) {
//既然Object类是所有类的父类,那么最大的一个好处就在于:利用Object类可以接收全部类的对象,根据多态性的自动向上转型
//向上转型,自动类型转换,接收子类Miss对象
Object o = new Miss();
//向上转型,自动类型转换,接收子类String对象
o = "hello,how are you?";
System.out.println(o);
//向上转型,自动类型转换,接收子类You对象
Object b = new You();
//向上转型,自动类型转换,接收数值型对象
b = 234;
System.out.println(b);
Object b1 = 2.34;
System.out.println(b1);
//向下转型,强制类型转换,强转变量名,或变量值
String s = (String)o;
System.out.println(s);
int i = (int)b;
System.out.println(i);
double d = (double)b1;
System.out.println(d);
}
}
//也就是说以下两种类定义的最终效果,是完全相同的
class Miss{
}
//也就是说以下两种类定义的最终效果,是完全相同的
class You extends Object{
}