向上转型和向下转型 Object object = new Student(); 这是隐式向上转型,那执行完这句后,object到底是什么类的对象?是Student还是Object吗? 如还是Student,那这样转型有什么意义。如果是Object,那下面这样的向下转型不就会出错了吗? Object object = new Student(); Student student 1 = (Student) object;初学者,求解释。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是student,当然student也是object意义:松耦合呵呵,随着你的代码量的提升,这些问题都会越来越清楚 知道Object 是所有类的父类,这貌似和我的问题没什么联系 你应该去了解下java构造函数的调用,你就明白了,另外你那个向下转型时没错的,应该object指定了是从Student向上转型而来,如果不指定,就会出现编译错误 假如有一个父类Vehicle,它有一个方法speed()它下面有几个子类,分别是,Car,Train,Horse,都有一个speed()方法,那么就可以使用Vehicle v=new Car();通过v调用子类的speed()方法,这在设计上面是很有用的,可以抛开子类,直接与父类接触这在接口设计方面,尤其作用明显,总之这是为人类服务,不是为了机器服务 当new处理的Student传给object后,就等于告诉编译器把student当作object来做,究竟为什么这样你学了多态后就知道了。你外向下转型一般要先用instance of判断一下类型不然容易出错,当然使用范型就方便多了 看看tinging in java 吧 里面解释的很详细。 Java调用dll乱码 。。。敬请指点一下,谢谢。。。。 小问题求教(送分的)? JAVA获取FTP文件大小以及文件修改时间 求一个好的SWT教程!!! 学Java和C++将来的方向问题,我是个初学者,望前辈们给点指点,谢谢 研究了好些天,web实现打印的功能,今天拿出来. 两个星期了,还没做出来,救急呀! 初学者疑问,以提多时,少人问,希望各位能帮帮忙 请大侠指点! Tomcat重启后log4j不打印日志 JAVA编译问题
意义:松耦合
呵呵,随着你的代码量的提升,这些问题都会越来越清楚
知道Object 是所有类的父类,这貌似和我的问题没什么联系
另外你那个向下转型时没错的,应该object指定了是从Student向上转型而来,
如果不指定,就会出现编译错误
它下面有几个子类,分别是,Car,Train,Horse,都有一个speed()方法,
那么就可以使用Vehicle v=new Car();
通过v调用子类的speed()方法,这在设计上面是很有用的,可以抛开子类,直接与父类接触
这在接口设计方面,尤其作用明显,总之这是为人类服务,不是为了机器服务
当new处理的Student传给object后,就等于告诉编译器把student当作object来做,究竟为什么这样你学了多态后就知道了。
你外向下转型一般要先用instance of判断一下类型不然容易出错,当然使用范型就方便多了