父类方法如何返回子类类型?这不违反继承吗?

时间:2015-03-19 13:48:40

标签: java string oop object

由于Object类被认为是Java中所有类的基类,它如何在String方法中返回.toString()类型,因为String类是Object类的子类?

这是否违反了继承,因为父类知道子类?

3 个答案:

答案 0 :(得分:1)

很简单,继承不要求父类对其子类一无所知。

因此,对于父类来说,引用子类是完全没问题的。如果没有这个,生成任何分层类型系统将是相当具有挑战性的!

答案 1 :(得分:0)

new Object().toString();

String s =(String) new Object();

绝对是两件不同的事情。如果与第二条指令相关,那么你的反对是有道理的:那就是处理继承而不是第一条指令。 事实上,这是一个缩小操作,将导致RuntimeException。

答案 2 :(得分:0)

嗯,type是一个检查类类型的操作......与继承没什么关系....当你输出一个带有.toString()的对象时,你基本上得到一个返回的String。这就是为什么你的返回类型为true ... toString()是一个所有类继承的方法,无论是否有用。