由于Object
类被认为是Java中所有类的基类,它如何在String
方法中返回.toString()
类型,因为String
类是Object
类的子类?
这是否违反了继承,因为父类知道子类?
答案 0 :(得分:1)
很简单,继承不要求父类对其子类一无所知。
因此,对于父类来说,引用子类是完全没问题的。如果没有这个,生成任何分层类型系统将是相当具有挑战性的!
答案 1 :(得分:0)
new Object().toString();
和
String s =(String) new Object();
绝对是两件不同的事情。如果与第二条指令相关,那么你的反对是有道理的:那就是处理继承而不是第一条指令。 事实上,这是一个缩小操作,将导致RuntimeException。
答案 2 :(得分:0)
嗯,type是一个检查类类型的操作......与继承没什么关系....当你输出一个带有.toString()的对象时,你基本上得到一个返回的String。这就是为什么你的返回类型为true ... toString()是一个所有类继承的方法,无论是否有用。