我希望这一点与我脑子里一样清晰。
我想我理解多态的本质。但是我想到了一个想法。想象一下,我需要一个级别较低的类的服务:
java.lang.Object中
...
java ... TheirClass实现了ItheirClass
public class MyClass1 {
private Object theirClass;
public MyClass1(Object thierClass) {
this.theirClass = (ItheirClass) theirClass;
}
}
或
public class MyClass2 {
private ItheirClass theirClass;
public MyClass2(ItheirClass thierClass) {
this.theirClass = theirClass
}
}
哪个是首选,为什么?一个' instanceOf'是否需要在第一次实现中检查传递的对象到构造函数?感谢。
答案 0 :(得分:1)
后者是首选。
如果你犯了一个错误,并为每个错误类型的参数提供信息,后者会在编译时提醒你,但前者在运行时才会失败。
一个较小的问题是类型转换不是Java中的自由操作,所以如果这是在大量使用的代码中,那么使用前者就会产生很小的运行时性能负担而无法获得。