在一个方法中,如果你想返回的是一个类类型时,那么这个方法中的return语句返回的类型就需要和方法的返回类型一致,如果你在方法中定义
了一个类并且指向一个变量时,这个new构造的对象决定在你调用这个方法时能不能转换成别的对象,而指向的那个变量决定的是需不需要强制
类型转换,我们都知道,一个子类的对象可以指向父类的引用,假如在方法中写了这样的代码,并且方法的返回类型是父类类型,
那么在调用这个方法时,我们可以将这个方法赋值给一个子类的引用,但是由于这个方法的返回类型是父类类型,而将父类引用变为子类引用是需要
强制类型转换的,我们只需要在前面加上(子类名)即可,当然如果是子类类型变为父类类型就不需要强制转换了,而如果你在方法中的语句是
new的父类类型,那么你在调用这个方法的时候将这个方法赋值给一个子类引用时编译通过,但是运行不通过。会报jang.lang.ClassCastException
这个错误。PS(一个方法的返回类型可以和return的语句的类型不同,返回类型才是这个方法的返回类型,而不是return语句,转换的方式也是一样,
子类可以自动转换为父类,父类需要强制转换为子类,如果你将父类的对象指向父类的引用,而函数的返回是子类类型,那么编译时也会通过,但是运行时
会报错,错误与之前一样,也就是说编译器只是检查类型之间有无继承关系,有则正确,运行时检查真正类型,是则通过)。